潍坊做外贸网站建设,怎么样自己建立一个网站,学生个人网页制作代码模板,把网站生成app的免费平台服务简介Catalog service#xff08;目录服务#xff09;维护着所有产品信息#xff0c;包括库存、价格。所以该微服务的核心业务为#xff1a;产品信息的维护库存的更新价格的维护架构模式先看代码结构#xff08;下图#xff09;。主要依赖#xff1a;1、HealthCheck … 服务简介Catalog service目录服务维护着所有产品信息包括库存、价格。所以该微服务的核心业务为产品信息的维护库存的更新价格的维护架构模式先看代码结构下图。主要依赖1、HealthCheck 健康检查2、WebHost3、Entity Framework4、Autofac5、BuildingBlocks文件夹下的EventBusRabbitMq其中前四项在Identity Service里面都已经用到了。事件总线EventBus是第一次用到我们后面会详细讲到。 这个服务采用简单的数据驱动的CRUD微服务架构来执行产品信息的创建、读取、更新和删除CRUD操作。 这种类型的服务在单个 ASP.NET Core Web API 项目中即可实现所有功能该项目包括数据模型类、业务逻辑类及其数据访问类。 启动流程 我们还是从程序启动处开始看跟identit.API差别不大。Program.csMain函数用到两个dbcontext。IntegrationEventLogContext负责记录事件日志CatalogContext负责产品。最终数据库如下BuildWebHost函数这里有一个UseWebRoot用来设置web根 webroot。默认情况下如果不指定是 (Content Root Path)\wwwroot前提是该路径存在。如果这个路径不存在则使用一个没有文件操作的提供器。startup.cs 这里有个app.UseCors(CorsPolicy)实际上services.AddCors是写在AddCustomMVC扩展函数里面的。 需要注意的是UseCors必须放在 UseMvc 之前且策略名称CorsPolicy必须是已经定义的。业务实体 该服务的主要实体是商品CatalogItem其中包含两个辅助类CatalogBrandCatalogType我们在看CatalogItem.cs的时候会发现两个函数AddStock,RemoveStock 对于实体这一块进行数据库字段映射时主键都使用了ForSqlServerUseSequenceHiLo指定使用HI-LO高低位序列进行主键生成。使用NoTracking提升查询速度在CatalogController的构造方法中明确指定以下代码来进行查询优化这一点也是我们值得学习的地方。((DbContext)context).ChangeTracker.QueryTrackingBehavior QueryTrackingBehavior.NoTracking;在进行种子数据的预置时使用了Polly开启了Retry机制。业务处理运行起来后我们浏览器输入 http://localhost:5101 展开catalog对应CatalogController.cs代码通过构造函数注入了3个对象contextsettingscatalogIntegrationEventService他们分别在startup类的AddCustomDbContextAddCustomOptionsAddIntegrationServices中被注册到了DI容器。再看具体的action通过ProducesResponseType描述HttpStatusCode的返回状态200,404 UpdateProduct函数这里通过EventBus发布了一个事件通过这个事件修改产品价格时同步更新购物车中保存的产品信息的价格。我们这里暂时不做详细讨论。 我们先看看eshop如何实现多个context之间的原子性的 _catalogIntegrationEventService.SaveEventAndCatalogContextChangesAsync(priceChangedEvent)的实现代码然后看ResilientTransaction.cs相关文章eShopOnContainers 看微服务 ①总体概览eShopOnContainers 看微服务 ②配置 启动eShopOnContainers 看微服务③Identity ServiceeShopOnContainers 知多少[1]总体概览eShopOnContainers 知多少[2]Run起来eShopOnContainers 知多少[3]Identity MicroserviceeShopOnContainers 知多少[4]Catalog microserviceCatalog Service - 解析微软微服务架构eShopOnContainers三eShopOnContainers 知多少[5]EventBus With RabbitMQEventBus In eShop -- 解析微软微服务架构eShopOnContainers四eShopOnContainers 是一个基于微服务的.NET Core示例框架原文地址https://www.cnblogs.com/tianyamoon/p/10141221.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com