当前位置: 首页 > news >正文

网站建设职业规划网站开发视频 百度云

网站建设职业规划,网站开发视频 百度云,德州金航网站建设,做一个网站先做前段 还是后端原文#xff1a;https://www.cnblogs.com/savorboard/p/cap-6-2.html作者#xff1a;杨晓东前言今天#xff0c;我们很高兴宣布 CAP 发布 6.2 版本正式版#xff0c;在这个版本中我们主要做了一些功能优化#xff0c;以及针对目前已经发现的几个 BUG 进行了修复了。那么https://www.cnblogs.com/savorboard/p/cap-6-2.html作者杨晓东前言今天我们很高兴宣布 CAP 发布 6.2 版本正式版在这个版本中我们主要做了一些功能优化以及针对目前已经发现的几个 BUG 进行了修复了。那么接下来我们具体看一下吧。总览可能有些人还不知道 CAP 是什么老规矩来一个简介。CAP 是一个用来解决微服务或者分布式系统中分布式事务问题的一个开源项目解决方案https://github.com/dotnetcore/CAP同样可以用来作为 EventBus 使用该项目诞生于2016年目前在 Github 已经有超过 5500 Star 和 70 贡献者以及在 NuGet超 250 万的下载量并在越来越多公司的和项目中得到应用。如果你想对 CAP 更多了解请查看我们的 官方文档。本次在 CAP 6.2 版本中我们主要带来了以下新特性Dashboard 添加中文支持事务对象更友好的对接第三方ORM消费执行消息头记录 InstanceId启动时对位于相同组的订阅者进行警告BUG 修复Snowflake Id 算法生成时排除虚拟回环和禁用的网卡修复 RabbitMQ 丢失连接并快速恢复时的健康检测Bug。修复 Dashboard 代理查询缺失 QueryString 的问题。修复 MongoDB 查询元素未注册不返回结果的Bug。修复 Scoped 生命周期工厂模式注册的订阅者报错的Bug。Dashboard 添加中文支持我们在 5.1.1 版本中使用 Vue 重构了我们的 Dashboard由于时间原因我们的新版本的 Dashboard 只对英文提供了支持。在该版本中我们重新提供了对中文的支持目前可自动根据你的浏览器检测使用的语言并展示。你也可以在右上方进行手动切换。img感谢 tetris1128 对此提交的PR事务对接第三方 ORM 更加友好在 CAP 中事务对象需要交给 CAP 进行提交从而在事务实现提交后对缓存消息到 Broker 的 Flush 动作而目前的Orm大部分都有自己的事务管理对象进行事务的提交。CAP官方直接原生支持使用 ADO.NET 和 EntityFrameworkCore 进行事务集成而对于第三方ORM则需要自行扩展。在本版本中我们做了一个小调整将 CapTransactionBase 中的 DbTransaction 设置为了 Virtual没想到这个小调整让我们对第三方ORM的兼容性得到了大大增强现在第三方ORM可以更加友好的对接CAP。以下是2个第三方ORM的集成示例FreeSql RepositoryUnitOfWork 事务模式 和 CAP 的 集成Chloe Orm 和 CAP 的集成示例与 FreeSql 集成FreeSql RepositoryUnitOfWork 事务模式 和 CAP 的 集成示例如下public class FreeSqlRepositoryPatternTransaction : CapTransactionBase {public FreeSqlRepositoryPatternTransaction(IDispatcher dispatcher, IUnitOfWork uow) : base(dispatcher){Uow  uow;}public IUnitOfWork Uow { get; }public override object? DbTransaction  Uow.GetOrBeginTransaction();public override void Commit(){Uow.Commit();Flush();}public override Task CommitAsync(CancellationToken cancellationToken  default){throw new NotImplementedException();}public override void Rollback(){Uow.Rollback();}public override Task RollbackAsync(CancellationToken cancellationToken  default){throw new NotImplementedException();}public override void Dispose(){Uow.Dispose();} }public static class Extensions {// 注意你可以酌情修改此扩展以支持你的使用习惯public static ICapTransaction BeginTransaction(this IFreeSql freeSql,ICapPublisher publisher, out IRepositoryUnitOfWork uow, bool autoCommit  false){var dispatcher  publisher.ServiceProvider.GetRequiredServiceIDispatcher();uow  freeSql.CreateUnitOfWork();var transaction  new FreeSqlRepositoryPatternTransaction(dispatcher, uow){AutoCommit  autoCommit};return publisher.Transaction.Value  transaction;} }使用发送带有事务的消息。[Route(~/with/test)] public IActionResult WithTransaction() {using (var transaction  _freeSql.BeginTransaction(_capBus, out var uow, false)){_capBus.Publish(sample.rabbitmq.mysql, DateTime.Now);var person  _freeSql.GetRepositoryPerson2();person.UnitOfWork  uow;person.Insert(new Person2() { Name  HelloWorld2 });transaction.Commit();}return Ok(); }你可以在这里查看到 FreeSql DbContext 事务模式的对接方式。示例与 Chloe 集成Chloe Orm 和 CAP 进行集成如下public class ChloeTransaction : CapTransactionBase {public ChloeTransaction(IDispatcher dispatcher, IDbSession session) : base(dispatcher){DbSession  session;      }public IDbSession DbSession { get; set; }public override object? DbTransaction  DbSession.CurrentTransaction;public override void Commit(){DbSession.CommitTransaction();Flush();}public override Task CommitAsync(CancellationToken cancellationToken  default){throw new NotImplementedException();}public override void Rollback(){DbSession.RollbackTransaction();}public override Task RollbackAsync(CancellationToken cancellationToken  default){throw new NotImplementedException();}public override void Dispose(){(DbTransaction as IDisposable)?.Dispose();} }public static class Extensions {public static ICapTransaction BeginTransaction(this IDbContext dbContext,ICapPublisher publisher, bool autoCommit  false){ var dispatcher  publisher.ServiceProvider.GetRequiredServiceIDispatcher();dbContext.Session.BeginTransaction();var transaction   new ChloeTransaction(dispatcher,dbContext.Session){AutoCommit  autoCommit};return publisher.Transaction.Value  transaction;} }发送带有事务的消息[Route(~/with/test)] public IActionResult WithTransaction() {using (_dbContext.BeginTransaction(_capBus, true)){_dbContext.Insert(new Person2() { Name  HelloWorld });           _capBus.Publish(sample.rabbitmq.mysql, DateTime.Now);}return Ok(); }相关链接https://github.com/shuxinqin/Chloe/issues/328消费执行消息头记录 InstanceId某天的一个下午我的同事告诉我他在使用CAP进行本地的消息调试的时候消息已经被消费执行了而且状态也变成成功了但是没进他的VS断点他又说有时候又会进断点他不知道怎么回事于是就把我叫过去了。我过去看了一下发现开发服务器上也部署的有应用并且使用的同一个RabbitMQ他的消息被线上部署的其他实例给消费掉了所以没进断点。之所以有时候又进断点则是因为消息是负载消费的恰好又轮到了他本地。基于以上原因在这个版本中我们在消费的消息头中记录了执行所在的 InstanceId也就是机器的 Hostname这样在查看消息就很方便的知道消息是被哪个实例给消费掉了便于排查问题。启动时对位于相同组的订阅者进行警告某天的一个下午我的同事又找到了我说他在使用CAP进行消费的时候调试的VS断点一直不进和上次不一样的是这次始终进不了但是消息又消费成功了他找了半天也不知道怎么回事于是就把我又叫过去了。我过去看了一下他没有犯和上次一样的错误。于是我检查了一下发现他在一个服务中弄了2个名称一样的订阅者并且使用的默认组。由于2个订阅者位于不同的类中所以他没有发现。熟悉CAP的都知道CAP 在启动的时候由于进行了去重处理所以只会使用其中的一个订阅者对于另外一个会忽略掉。基于以上原因在这个版本中我们在启动的时候进行了检测如果发现在一个组中有2个以上的同名订阅者我们会进行警告日志的打印进行提醒但不会抛出异常来阻止你的启动。BUG 修复在这个版本中我们进行了一些已发现的BUG修复下面是修复的内容项。Snowflake Id 算法生成时排除虚拟回环和禁用的网卡修复 RabbitMQ 丢失连接并快速恢复时的健康检测Bug。修复 Dashboard 代理查询缺失 QueryString 的问题。修复 MongoDB 查询元素未注册不返回结果的Bug。修复 Scoped 生命周期工厂模式注册的订阅者报错的Bug。总结以上就是本版本我们做出的一些支持和改动感谢大家的支持我们很开心能够帮助到大家 。大家在使用的过程中遇到问题希望也能够积极的反馈帮助CAP变得越来越好。
http://wiki.neutronadmin.com/news/410126/

相关文章:

  • 大淘客怎样做网站自建网站h5
  • 专业做网站建设公司哪家好东营建设企业网站
  • 网站服务器机房芜湖企业做网站
  • 青岛 php 网站建设wordpress计时
  • 有关网站开发的文章贵州软件开发 网站开发
  • 廊坊网站建设咨询青橙网络企业网站推广推广阶段
  • 个人网站做交易类的赚钱吗做网站不给源码程序
  • 网站哪里做昆明公司有哪些
  • 做公众号和网站一样吗怎样通过网络销售自己的产品
  • php5 mysql网站开发实例精讲深圳网站建设首选上榜网络
  • 芙蓉网站制作亿客搜网站建设
  • 哪些门户网站可以做推广山东seo推广公司
  • 房地产网站制作公司创建公众号的流程
  • 开源手机建站系统科技设计公司网站模板下载
  • 淄博网站建设团队免费咨询合同范本
  • 网站域名备案在阿里云怎么做app和网站开发人员工作职责
  • 网站建设需要怎么选合作机构分类网站模板
  • 查询网站入口wordpress 翻页无效
  • 网站建设分类江苏新宁建设集团网站
  • 友点企业网站管理系统忘记密码策划案怎么写
  • 长沙岳麓区网站建设wordpress干啥的
  • 新冠止咳药物有哪几种站长seo查询工具
  • 环保公司网站建设方案驾校网站建设方案题婚
  • 网站开发及app开发报价深圳网站关键词排名优化
  • dw主页制作上海seo网络优化
  • 营销网站建设案例西安网站推广慧创
  • vs2008网站消息弹窗怎么做手机网站制作视频教程
  • 进度跟踪网站开发佛山网站优化包年
  • 上海市交通建设工程安全质量监督站网站自己一个人做网站可以吗
  • 网站模板的组成义乌建网站