搜索分类、视频或标签
学习微软 eShopOnContainers 项目源码,深入微服务架构最佳实践,容器化应用程序架构指南。
共 34 项内容
容器化应用管理,关系型与非关系型数据库,分布式消息队列,分布式缓存,服务网关实现,反向代理与负载均衡,分布式结构化日志系统,服务注册与发现,健康状况监测,依赖注入容器,轻量级数据访问框架,链式验证规则,实体属性自动映射,远程过程调用,实现单点登录,使用中介者模式的领域事件,客户端实时通信与通知,容错故障处理,日志收集器,帮助文档生成工具,网络钩子,实现后台自动任务,自动化测试,前端库管理与性能优化。
分布式与结构化日志系统,可用 Serilog 与 NLog 收集日志 ,学习微软 eShop 微服务体系结构中的 Seq 分布结构化日志系统,收集应用程序日志,强大的搜索与过滤机制,分析并绘制日志图表,警报与通知,工具链 ELK 由 ElasticSearch、Logstash 和 Kiabana 三个开源工具组成,使用 ELK 搭建大规模分布式实时日志分析平台,使用 RequestID 在分布式系统中追踪请求。
不同微服务间的通信方式,相同微服务不同领域聚合之间的通信方式,使用 Webhooks 网络钩子向外部系统发送事件通知,学习微软 eShop 微服务体系架构中关于 Webhook 网络钩子的实现,实现钩子查询和注册退订接口,使用可视化客户端界面管理钩子,钩子操作的认证与授权机制。
微服务的安全性,理解身份认证与授权过程,实现单点登录,使用 Identity 进行身份验证,使用外部提供程序进行身份验证,使用持有者令牌进行身份验证,使用 OpenID Connect 或 OAuth 2.0 标识提供程序进行身份验证,使用 IdentityServer 服务颁发安全令牌,跨多个微服务传递访问令牌,关于 JwtBearer 与 Cookie 认证,基于角色的授权和基于策略的授权,在开发过程中安全地存储应用程序机密。
理解关系型数据库与 NoSQL 非关系型数据库,列式数据存储与键值数据存储的区别,学习 MongoDB 数据库,在 Docker 容器中运行 MongoDB 数据库,使用图形化界面管理 MongoDB 数据库,在 ASP.NET Core 中使用开源驱动程序对 MongoDB 数据库实现 CRUD 操作,微软 eShop 微服务架构中应用 MongoDB 存储用户的 GPS 地理位置信息。
在 CQRS 微服务中实现读写分离,理解领域实体与视图模型的区别,使用 Dapper 作为微型 ORM 以执行查询,实现领域事件处理程序,基于 Autofac 扩展依赖注入容器,使用 MediatR 实现命令与命令处理程序模式,使用中介者管道拦截器对命令执行 FluentValidation 链式验证,命令日志记录拦截器,实现可扩展的命令去重功能。
学习 eShop 微服务架构源码,学习面向 DDD 微服务的分层架构,实现领域模型层,编写聚合根、领域实体、值对象和领域事件,适用于领域模型的可重用基类与接口,使用枚举类不是枚举类型,仓储模式与工作单元接口,使用 EfCore 实现基础结构持久层,请求消息去重机制。
在微服务中应用简化后的 CQRS 和 DDD 模式,事件溯与 CQRS 模式,设计面向 DDD 的微服务,设计微服务领域模型,聚合跟、领域实体和值对象,贫血模型与充血模型,模型验证,领域事件的设计和实现,领域事件与集成事件的区别,设计基础结构持久性层,仓储模式与工作单元,使用 EfCore 和 NoSQL 实现基础设施层,设计微服务应用层和 Web API 接口,实现命令和命令处理程序模式。
基于微服务的单元测试、集成测试和功能测试,学习微软 eShop 微服务体系结构中的测试方式,单元测试与 Mock 虚拟对象,为提高集成测试与功能测试的执行效率,可使用 TestHost 在进程内模拟测试服务器,测试微服务之间的交互协作,使用多环境配置文件,在 Docker 容器中运行测试项目。
多体系微服务结构模式,设计面向微服务的 .NET Core 应用程序,创建简单的数据驱动 CRUD 微服务,学习微软 eShop 微服务体系结构源码,定义多容器应用程序,容器环境变量,在容器中运行数据库,数据库迁移与演示数据生成,使用内存数据库提升开发环境性能,在容器中运行的 Redis 分布式缓存服务,在微服务中实现后台自动任务。
微服务的复原模式与容错性,瞬态故障处理设计,重试机制,指数退避算法与抖动策略,超时机制,缓存策略,断路器模式,回退机制,限制请求数,限流限次与计费机制,使用 Polly 开源库处理瞬态故障,编写处理条件,设置策略,使用策略执行方法,可将策略注入到依赖容器,将 HttpClientFactory 与 Polly 集成,学习微软 eShop 微服务体系架构中的瞬态故障处理方式,关于管道中间件实现断路器模拟测试方案。
实现可复原的微服务,瞬时故障与容错性,微软 EF Core 提供程序针对特定数据库的失败条件提供定制的执行策略,同时提供最佳的重试策略,配置重试次数、重试间隔和错误代码,数据库连接字符串中的重试参数,自定义执行策略,执行策略与事务,事务提交失败和幂等性问题,学习 eShop 微服务体系架构中重试机制与事务执行策略的应用。
运行状况监视可获取有关容器和微服务状态的近实时信息,容器业务流程协调程序和负载均衡器用于检查应用的状态,运行状况检查由应用程序作为 HTTP 终结点公开,微软 ASP.NET Core 提供运行状况检查解决方案,配置运行状况检查,编写自定义健康检查器,使用开源扩展库实现运行状况检查,可视化展示与历史状况时间线,可用 Webhook 网络钩子通知其它服务,微软 eShop 微服务体系架构中的健康状况检查。
微服务体系结构通常从服务器端开始处理数据和逻辑,许多情况下 UI 仍作为整体来处理,对于复杂的业务规模,整体式 UI 难以维护,一种称为微前端方法可生成复合 UI 界面,按照这种方法构建的微服务具有自治的逻辑和可视化表示形式,功能十分完整,与之相比,复合 UI 是由微服务本身精确生成和组合而成的,可灵活控制 UI 特定区域的视觉形状。
每个微服务都有唯一名称,用于解析其位置,了解 DNS 解析系统,理解微服务的可寻址性,服务注册表与服务发现,主流的服务注册解决方案,使用开源 Consul 工具搭建服务注册与发现集群,健康检查,负载均衡,全局分布式的键值存储,实战演练,基于 ASP.NET Core 构建微服务,在注册表集群中动态注册服务,使用服务发现动态调用微服务,关于 Consul 与 Ocelot、Nginx、Envoy 和 Kubernetes 的深度集成。
使用完整事件溯源模式,事务日志挖掘,使用发件箱模式关联数据库事务,记录事件日志,将事件发布到总线的原子性,使用辅助微服务将事件发布到总线的复原能力,更新事件消息的幂等性,代码实战演练,使用 EF Core 实现通用的发件箱模式,微软 eShop 微服务架构中关于事件总线的应用。
学习微软 eShop 微服务架构中的事件总线,实现可扩展的事件总线,消息事件定义,事件总线接口抽象,事件处理程序抽象,基于动态类型的处理程序,事件与订阅者管理器,使用 RabbitMQ 完成事件总线接口,使用指数退避算法实现连接复原,依赖注入扩展与配置选项,通过示例代码实战演练,生产者与消费者处理器的依赖注入。
认识 RabbitMQ 提供的命令行工具,学习图形化管理界面,分别配置虚机、连接、通道、交换机、队列、用户和权限,使用图形界面跟踪性能并调试队列,配置队列读写权限,生产者与消费者的身份认证授权,关于 RabbitMQ 高可用性与分布式集群的搭建,使用 Docker 容器编排文件快速启动分布式集群,其它扩展功能介绍。
生产者将消息发布到 Direct 类型的交换机,消费者通过路由键将队列绑定到交换机消费消息,生产者将消息发布到 Topic 类型的交换机,消费者使用路由键通配符订阅消息,使用回复队列间接实现基于 RPC 的请求模式,使用 ACK 确认机制保证生产者与消费者传输消息的可靠性,示例代码与实战演练。
关于 AMQP 通信协议与 RabbitMQ 的基本架构,生产者,消费者,交换机,队列,路由键,虚拟机,使用多个通道复用物理连接,安装方式说明,在 Docker 容器中运行 RabbitMQ 服务端,通过编写代码实战演练,最简单的队列通信方式,将生产者消息分配给多个工作进程,分布式队列的发布订阅模式,定义队列与交换机,并将队列绑定到交换机,消息到达后的自动确认与手动确认。
同步与异步通信,关于 AMQP 高级消息队列协议,基于异步通信的单接收者与多接收者,事件驱动的异步通信,观察者模式,发布者与订阅者模式,抽象可扩展的事件总线接口,事件总线接口的多个实现,发布事件的原子性和复原能力,使用事件溯源模式和发件箱模式实现数据的高可用性与一致性。
认识 K8S 容器集群管理解决方案,理解 Docker 物理架构层次图和体系结构图,关于 Kubernetes 体系架构图,微软 eShop 微服务体系架构中的 K8S 集群部署,如何学习 Docker 和 Kubernetes 技术,使用可视化的界面管理集群,微软 Visual Studio 提供的 Kubernetes 工具可简化面向容器化应用程序的开发。
常用 Docker 命令集合,学习微软平台上开发 Docker 应用程序的流程,构建 Docker 容器开发环境,安装 Visual Studio 容器工具工作负载,在项目中启用 Docker 支持,生成镜像,使用发布工具发布映像到远程仓库注册表,使用容器业务流程协调程序支持管理多个容器,多环境配置文件管理,在项目中读取配置文件,关于容器工具的相关设置。
如何定义每个微服务的边界,创建从多个微服务中检索数据的查询,可用 API 网关聚合数据,关于 CQRS 命令查询职责分离,具体化视图模式,如何实现微服务之间的数据一致性,分布式系统设计中的 CAP 原则与 BASE 原则,同步通信与异步通信,如何设计跨微服务边界的通信。基于分布式消息队列的异步通信,在事件总线上发布与订阅,事件溯源模式。