摘要:
# Asp.Net Core Consul + Ocelot 1.1 服务注册和服务发现 Consul和Ocelot基本概念这里不在阐述,使用Consul+Ocelot完成基本的服务注册和服务发现 (1)修改Ocelot配置文件,支持Consul (2)Apollo发布配置 (3)网关服务固定端口 阅读全文
摘要:
Asp.Net Core Consule 1.1 Consule简介 在分布式架构中,服务治理是必须面对的问题,如果缺乏简单有效治理方案,各服务之间只能通过人肉配置的方式进行服务关系管理,当遇到服务关系变化时,就会变得极其麻烦且容易出错。 Consul是一个用来实现分布式系统服务发现与配置的开源工具 阅读全文
摘要:
## Asp.Net Core Ocelot 1.1 Ocelot简介 Ocelot是一个用.NET Core实现并且开源的API网关技术,它的功能包括了:路由、请求聚合、服务发现、认证、鉴权、限流熔断、并内置了负载均衡器、Service Fabric、Skywalking等的集成。而且这些功能都 阅读全文
摘要:
Asp.Net Core Apollo 1.1 Apollo简介 git地址:https://github.com/apolloconfig Apollo(阿波罗)是携程框架部研发并开源的一款生产级的配置中心产品,它能够集中管理应用在不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备 阅读全文
摘要:
Net6新语法 1.1 顶级语句 直接在C#文件中直接编写入口方法的代码,不用类,不用Main。经典写法仍然支持。反编译一下了解真相。 同一个项目中只能有一个文件具有顶级语句。 顶级语句中可以直接使用await语法,也可以声明函数 编译器帮忙生成了命名空间、类名、方法名 1.2 全局Using指令 阅读全文
摘要:
# DDD之实现集成事件(RabbitMQ) 1.1 RabbitMQ 集成事件是服务器间的通信,所以必须借助于第三方服务器作为事件总线。常用的消息中间件有Redis、RabbitMQ、Kafka、ActiveMQ等 1.2 RabbitMq简介 信道(Channel):信道是消息的生产者、消费 阅读全文
摘要:
# DDD之EFCore发布领域事件的时机 (1)在聚合根的实体对象的ChangeName()、构造方法等方法中立即发布领域事件,因为无论是应用服务还是领域服务,最终要调用聚合根中的方法来操作聚合,我们这样做可以确保领域事件不会被漏掉。 缺点: 存在重复发送领域事件的情况 领域事件发布的太早:在 阅读全文
摘要:
DDD之实现领域事件(MediatR) 领域事件:在同一个微服务内的聚合之间的事件传递。使用进程内的通信机制完成。 (1)C#的事件机制 var eventClass = new EventClass(); eventClass .事件+=eventClass_事件 eventClass.Start 阅读全文
摘要:
# DDD之聚合在.Net中的实现 (1)工作单元 EFCore的DbContext:跟踪对象状态的改变;SaveChanges把所有的改变一次性地提交到数据库中,是一个事务。因此DbContext是天然的UoW实现。 (2)聚合与聚合根的实现 即使一个实体类型没有声明对应的DbSet类型的属性, 阅读全文
摘要:
DDD之EFCore实现值对象 Region public record Region { public long Id { get; init; } public MultilingualString Name { get; init; } public Area Area { get; init 阅读全文
摘要:
1. DDD之EFCore操作实体属性和实现充血模型 1.1 EFCore操作实体属性 (1)对象操作实体属性会调用get,set方法 (2)基于性能和对特殊功能支持的考虑,EF Core在读写属性的时候,如果可能,它会直接跳过get、set,而直接操作真正存储属性值的成员变量 (3)EF Core 阅读全文
摘要:
# DDD之基本概念 1.1 微服务简介 (1)单体架构项目 缺点 耦合 技术栈统一,软件包版本锁定 一崩全崩;升级周期长;无法局部扩容 (2)微服务 优点 耦合性低,易于开发和维护;可以用不同技术栈;可以单独扩容;互相隔离,影响小;部署周期短 缺点 对运维能力要求高;运行效率会降低;技术要求高, 阅读全文
摘要:
## 1.Asp.Net Core SignalR WebSocket基于TCP协议,支持二进制通信,双工通信。 性能和并发能力更强。 WebSocket独立于HTTP协议,不过我们一般仍然把WebSocket服务器端部署到Web服务器上,因为可以借助HTTP协议完成初始的握手(可选),并且共享H 阅读全文
摘要:
1.Asp.Net Core 数据校验(DataAnnotations,FluentValidation) 1.1 DataAnnotations .NET Core中内置了对数据校验的支持,System.ComponentModel.DataAnnotations [Required] [Emai 阅读全文
摘要:
## Asp.Net Core 托管服务 (1)托管服务简介 托管服务实现IHostedService接口,一般编写从BackgroundService继承的类。 注入托管服务services.AddHostedService(); (2)托管服务的异常问题 HostOptions.Backgro 阅读全文
摘要:
## 1.Asp.Net Core JWT 1.1 概念 (1)session 对于分布式集群环境,Session数据保存在服务器内存中就不合适了,应该放到一个中心状态服务器上。ASP.NET Core支持Session采用Redis、Memcached。 中心状态服务器有性能问题。 (2)JWT 阅读全文
摘要:
## 1.Asp.Net Core Middleware(中间件) 1.1 中间件 (1)什么是中间件 中间件是ASP.NET Core的核心组件,MVC框架、响应缓存、身份验证、CORS、Swagger等都是内置中间件。 广义上来讲:Tomcat、WebLogic、Redis、IIS;狭义上来讲 阅读全文
摘要:
## 1.Asp Net Core Filter(过滤器) 1.1 Filter简介 (1)面向切面编程 (2)ASP.NET Core中的Filter的五种类型:Authorization filter、Resource filter、Action filter、Exception filte 阅读全文
摘要:
Asp.Net Core 配置系统和管理用户机密 1.Asp.Net Core 配置系统集成 (1)ASP.NET Core默认添加的配置提供者 加载现有的IConfiguration 加载项目根目录下的appsettings.json 加载项目根目录下的appsettings.{Environme 阅读全文
摘要:
## 1.Asp.Net Core 缓存 1.1 缓存 (1)什么是缓存: 缓存(Caching)是系统优化中简单又有效的工具,投入小收效大。数据库中的索引等简单有效的优化功能本质上都是缓存。 (2)缓存的概念 缓存命中 缓存命中率 缓存数据不一致 (3)多级缓存 1.2 Asp.Net Core 阅读全文