eShopOnContainers视频教程

  • 共 34 个视频教程

第34期-微服务体系架构技术总结

  • 2020-06-04 01:06:26
  • 26 分钟

容器化应用管理,关系型与非关系型数据库,分布式消息队列,分布式缓存,服务网关实现,反向代理与负载均衡,分布式结构化日志系统,服务注册与发现,健康状况监测,依赖注入容器,轻量级数据访问框架,链式验证规则,实体属性自动映射,远程过程调用,实现单点登录,使用中介者模式的领域事件,客户端实时通信与通知,容错故障处理,日志收集器,帮助文档生成工具,网络钩子,实现后台自动任务,自动化测试,前端库管理与性能优化。

173次播放

第33期-分布式结构化日志系统

  • 2020-06-04 00:02:44
  • 35 分钟

分布式与结构化日志系统,可用 Serilog 与 NLog 收集日志 ,学习微软 eShop 微服务体系结构中的 Seq 分布结构化日志系统,收集应用程序日志,强大的搜索与过滤机制,分析并绘制日志图表,警报与通知,工具链 ELK 由 ElasticSearch、Logstash 和 Kiabana 三个开源工具组成,使用 ELK 搭建大规模分布式实时日志分析平台,使用 RequestID 在分布式系统中追踪请求。

35次播放

第32期-Webhook网络钩子发送通知

  • 2020-05-26 21:58:18
  • 22 分钟

不同微服务间的通信方式,相同微服务不同领域聚合之间的通信方式,使用 Webhooks 网络钩子向外部系统发送事件通知,学习微软 eShop 微服务体系架构中关于 Webhook 网络钩子的实现,实现钩子查询和注册退订接口,使用可视化客户端界面管理钩子,钩子操作的认证与授权机制。

3319次播放

第31期-微服务身份认证与授权机制

  • 2020-05-25 22:33:03
  • 55 分钟

微服务的安全性,理解身份认证与授权过程,实现单点登录,使用 Identity 进行身份验证,使用外部提供程序进行身份验证,使用持有者令牌进行身份验证,使用 OpenID Connect 或 OAuth 2.0 标识提供程序进行身份验证,使用 IdentityServer 服务颁发安全令牌,跨多个微服务传递访问令牌,关于 JwtBearer 与 Cookie 认证,基于角色的授权和基于策略的授权,在开发过程中安全地存储应用程序机密。

3531次播放

第30期-微服务使用NoSQL数据库

  • 2020-05-18 23:05:18
  • 33 分钟

理解关系型数据库与 NoSQL 非关系型数据库,列式数据存储与键值数据存储的区别,学习 MongoDB 数据库,在 Docker 容器中运行 MongoDB 数据库,使用图形化界面管理 MongoDB 数据库,在 ASP.NET Core 中使用开源驱动程序对 MongoDB 数据库实现 CRUD 操作,微软 eShop 微服务架构中应用 MongoDB 存储用户的 GPS 地理位置信息。

3828次播放

第29期-实现CQRS模式与DDD应用层

  • 2020-05-14 00:39:56
  • 51 分钟

在 CQRS 微服务中实现读写分离,理解领域实体与视图模型的区别,使用 Dapper 作为微型 ORM 以执行查询,实现领域事件处理程序,基于 Autofac 扩展依赖注入容器,使用 MediatR 实现命令与命令处理程序模式,使用中介者管道拦截器对命令执行 FluentValidation 链式验证,命令日志记录拦截器,实现可扩展的命令去重功能。

50次播放

第28期-实现DDD领域层与基础设施层

  • 2020-05-14 00:21:59
  • 34 分钟

学习 eShop 微服务架构源码,学习面向 DDD 微服务的分层架构,实现领域模型层,编写聚合根、领域实体、值对象和领域事件,适用于领域模型的可重用基类与接口,使用枚举类不是枚举类型,仓储模式与工作单元接口,使用 EfCore 实现基础结构持久层,请求消息去重机制。

33次播放

第27期-设计微服务CQRS与DDD模式

  • 2020-05-12 22:13:14
  • 63 分钟

在微服务中应用简化后的 CQRS 和 DDD 模式,事件溯与 CQRS 模式,设计面向 DDD 的微服务,设计微服务领域模型,聚合跟、领域实体和值对象,贫血模型与充血模型,模型验证,领域事件的设计和实现,领域事件与集成事件的区别,设计基础结构持久性层,仓储模式与工作单元,使用 EfCore 和 NoSQL 实现基础设施层,设计微服务应用层和 Web API 接口,实现命令和命令处理程序模式。

3824次播放

第26期-测试微服务应用程序

  • 2020-05-08 23:11:32
  • 39 分钟

基于微服务的单元测试、集成测试和功能测试,学习微软 eShop 微服务体系结构中的测试方式,单元测试与 Mock 虚拟对象,为提高集成测试与功能测试的执行效率,可使用 TestHost 在进程内模拟测试服务器,测试微服务之间的交互协作,使用多环境配置文件,在 Docker 容器中运行测试项目。

4063次播放

第25期-设计和开发多容器微服务

  • 2020-05-07 22:37:20
  • 26 分钟

多体系微服务结构模式,设计面向微服务的 .NET Core 应用程序,创建简单的数据驱动 CRUD 微服务,学习微软 eShop 微服务体系结构源码,定义多容器应用程序,容器环境变量,在容器中运行数据库,数据库迁移与演示数据生成,使用内存数据库提升开发环境性能,在容器中运行的 Redis 分布式缓存服务,在微服务中实现后台自动任务。

3898次播放

第24期-可复原性与瞬态故障处理机制

  • 2020-04-29 01:16:24
  • 55 分钟

微服务的复原模式与容错性,瞬态故障处理设计,重试机制,指数退避算法与抖动策略,超时机制,缓存策略,断路器模式,回退机制,限制请求数,限流限次与计费机制,使用 Polly 开源库处理瞬态故障,编写处理条件,设置策略,使用策略执行方法,可将策略注入到依赖容器,将 HttpClientFactory 与 Polly 集成,学习微软 eShop 微服务体系架构中的瞬态故障处理方式,关于管道中间件实现断路器模拟测试方案。

238次播放

第23期-可复原的EFCore数据库访问

  • 2020-04-27 00:36:37
  • 21 分钟

实现可复原的微服务,瞬时故障与容错性,微软 EF Core 提供程序针对特定数据库的失败条件提供定制的执行策略,同时提供最佳的重试策略,配置重试次数、重试间隔和错误代码,数据库连接字符串中的重试参数,自定义执行策略,执行策略与事务,事务提交失败和幂等性问题,学习 eShop 微服务体系架构中重试机制与事务执行策略的应用。

21次播放

第22期-微服务运行状况管理和诊断

  • 2020-04-23 22:43:18
  • 26 分钟

运行状况监视可获取有关容器和微服务状态的近实时信息,容器业务流程协调程序和负载均衡器用于检查应用的状态,运行状况检查由应用程序作为 HTTP 终结点公开,微软 ASP.NET Core 提供运行状况检查解决方案,配置运行状况检查,编写自定义健康检查器,使用开源扩展库实现运行状况检查,可视化展示与历史状况时间线,可用 Webhook 网络钩子通知其它服务,微软 eShop 微服务体系架构中的健康状况检查。

4206次播放

第21期-创建基于微服务的UI微前端

  • 2020-04-21 21:01:01
  • 13 分钟

微服务体系结构通常从服务器端开始处理数据和逻辑,许多情况下 UI 仍作为整体来处理,对于复杂的业务规模,整体式 UI 难以维护,一种称为微前端方法可生成复合 UI 界面,按照这种方法构建的微服务具有自治的逻辑和可视化表示形式,功能十分完整,与之相比,复合 UI 是由微服务本身精确生成和组合而成的,可灵活控制 UI 特定区域的视觉形状。

4045次播放

第20期-微服务的注册与发现

  • 2020-04-20 21:16:31
  • 47 分钟

每个微服务都有唯一名称,用于解析其位置,了解 DNS 解析系统,理解微服务的可寻址性,服务注册表与服务发现,主流的服务注册解决方案,使用开源 Consul 工具搭建服务注册与发现集群,健康检查,负载均衡,全局分布式的键值存储,实战演练,基于 ASP.NET Core 构建微服务,在注册表集群中动态注册服务,使用服务发现动态调用微服务,关于 Consul 与 Ocelot、Nginx、Envoy 和 Kubernetes 的深度集成。

4100次播放

第19期-事件总线的原子性和复原能力

  • 2020-03-12 22:54:30
  • 45 分钟

使用完整事件溯源模式,事务日志挖掘,使用发件箱模式关联数据库事务,记录事件日志,将事件发布到总线的原子性,使用辅助微服务将事件发布到总线的复原能力,更新事件消息的幂等性,代码实战演练,使用 EF Core 实现通用的发件箱模式,微软 eShop 微服务架构中关于事件总线的应用。

5148次播放

第18期-抽象并实现可扩展的事件总线

  • 2020-03-12 00:30:58
  • 70 分钟

学习微软 eShop 微服务架构中的事件总线,实现可扩展的事件总线,消息事件定义,事件总线接口抽象,事件处理程序抽象,基于动态类型的处理程序,事件与订阅者管理器,使用 RabbitMQ 完成事件总线接口,使用指数退避算法实现连接复原,依赖注入扩展与配置选项,通过示例代码实战演练,生产者与消费者处理器的依赖注入。

69次播放

第17期-使用RabbitMQ图形化管理

  • 2020-03-10 23:11:00
  • 48 分钟

认识 RabbitMQ 提供的命令行工具,学习图形化管理界面,分别配置虚机、连接、通道、交换机、队列、用户和权限,使用图形界面跟踪性能并调试队列,配置队列读写权限,生产者与消费者的身份认证授权,关于 RabbitMQ 高可用性与分布式集群的搭建,使用 Docker 容器编排文件快速启动分布式集群,其它扩展功能介绍。

5429次播放

第16期-使用RabbitMQ更高级的功能

  • 2020-03-05 23:31:11
  • 41 分钟

生产者将消息发布到 Direct 类型的交换机,消费者通过路由键将队列绑定到交换机消费消息,生产者将消息发布到 Topic 类型的交换机,消费者使用路由键通配符订阅消息,使用回复队列间接实现基于 RPC 的请求模式,使用 ACK 确认机制保证生产者与消费者传输消息的可靠性,示例代码与实战演练。

5538次播放

第15期-使用RabbitMQ实现事件总线

  • 2020-03-04 23:52:31
  • 49 分钟

关于 AMQP 通信协议与 RabbitMQ 的基本架构,生产者,消费者,交换机,队列,路由键,虚拟机,使用多个通道复用物理连接,安装方式说明,在 Docker 容器中运行 RabbitMQ 服务端,通过编写代码实战演练,最简单的队列通信方式,将生产者消息分配给多个工作进程,分布式队列的发布订阅模式,定义队列与交换机,并将队列绑定到交换机,消息到达后的自动确认与手动确认。

5569次播放

第14期-分布式消息队列总线异步通信

  • 2020-02-25 18:12:44
  • 35 分钟

同步与异步通信,关于 AMQP 高级消息队列协议,基于异步通信的单接收者与多接收者,事件驱动的异步通信,观察者模式,发布者与订阅者模式,抽象可扩展的事件总线接口,事件总线接口的多个实现,发布事件的原子性和复原能力,使用事件溯源模式和发件箱模式实现数据的高可用性与一致性。

4498次播放

第13期-学习Kubernetes集群体系架构

  • 2020-02-24 18:22:56
  • 45 分钟

认识 K8S 容器集群管理解决方案,理解 Docker 物理架构层次图和体系结构图,关于 Kubernetes 体系架构图,微软 eShop 微服务体系架构中的 K8S 集群部署,如何学习 Docker 和 Kubernetes 技术,使用可视化的界面管理集群,微软 Visual Studio 提供的 Kubernetes 工具可简化面向容器化应用程序的开发。

4526次播放

第12期-容器化Docker应用程序开发流程

  • 2020-02-23 23:59:23
  • 68 分钟

常用 Docker 命令集合,学习微软平台上开发 Docker 应用程序的流程,构建 Docker 容器开发环境,安装 Visual Studio 容器工具工作负载,在项目中启用 Docker 支持,生成镜像,使用发布工具发布映像到远程仓库注册表,使用容器业务流程协调程序支持管理多个容器,多环境配置文件管理,在项目中读取配置文件,关于容器工具的相关设置。

5817次播放

第11期-分布式微服务的挑战和解决方案

  • 2020-02-22 16:20:22
  • 37 分钟

如何定义每个微服务的边界,创建从多个微服务中检索数据的查询,可用 API 网关聚合数据,关于 CQRS 命令查询职责分离,具体化视图模式,如何实现微服务之间的数据一致性,分布式系统设计中的 CAP 原则与 BASE 原则,同步通信与异步通信,如何设计跨微服务边界的通信。基于分布式消息队列的异步通信,在事件总线上发布与订阅,事件溯源模式。

4052次播放

第10期-Envoy在eShop微服务中的应用

  • 2020-02-21 19:02:22
  • 49 分钟

开源 Envoy 是专为代理和通信总线而设计的,关于官方文档与指南,通过编写 ASP.NET Core 示例演示 Envoy 的使用方法,镜像生成与容器编排,在 Docker 容器中运行 Envoy 代理,使用 Dcoker 容器卷映射配置文件,路由规则设置,负载均衡集群和算法策略配置,学会 Visual Studio 提供 Docker 镜像与容器可视化管理工具,微软 eShop 微服务体系架构中的 Envoy 应用,网关模式与 BFF 代理设计。

4836次播放

第09期-Ocelot在eShop微服务中的应用

  • 2020-02-20 16:58:11
  • 49 分钟

学习微软 eShop 微服务体系架构中的网关设计思想,使用单个 Docker 容器映像通过不同的配置运行多个不同类型的 API 网关或 BFF 容器,微服务架构中的网关聚合模式,在网关层面使用 IdentityServer 实现的身份认证与授权横切点,通过分析项目源代码,深入理解微服务中的网关设计和具体实现。

4097次播放

第08期-使用Ocelot网关转发请求

  • 2020-02-19 22:19:13
  • 42 分钟

学习 Ocelot 开源网关,理解功能特点,配置,路由规则,请求聚合,服务发现,认证授权,限次限速,谓词转换,缓存,服务质量,请求头转换,用户声明转换,分布式日志追踪,通过示例演示请求转发功能,配置负载均衡服务列表与均衡算法策略,使用 API 聚合器合并多个返回结果,编写自定义的请求聚合器。

5629次播放

第07期-Nginx从入门到实践

  • 2020-02-17 22:35:08
  • 56 分钟

正向代理与反向代理,负载均衡,动静分离,高可用性与容错能力,守候进程与工作进程,无需重新启动的热部署,将 Nginx 寄宿到 Windows 服务中,解读强大详细的配置文件,通过示例实战演练,负载均衡策略,默认轮询,加权轮询,最少连接原则,加权最少连接,IP哈希算法,Url哈希算法,关于开源的 Nginx 可视化管理工具,可在 Docker 容器 中运行 Nginx 支持,推荐优质的学习资源。

5688次播放

第06期-微服务API网关模式与BFF模式

  • 2020-01-09 21:00:56
  • 33 分钟

客户端与微服务终结点直接通信,对于大型复杂应用程序,面临很多问题,可使用客户端到 API 网关的通信模式,实现 BFF 面向前端的后端模式,网关模式的主要功能,反向代理或网关路由,请求聚合,使用第三方框架实现网关功能,分析网关模式的缺点,学习 eShopOnContainers 项目中关于 API 网关模式与 BFF 模式的应用。

6228次播放

第05期-如何定义微服务的模型边界

  • 2020-01-07 21:26:38
  • 27 分钟

在为每个微服务定义模型边界和大小时,应尽可能倾向于小型微服务,但目标并不是尽可能达到最细粒度的分离,根据领域驱动 DDD 限定上下文分析模型的边界,康威定律规定应用程序应反映开发团队的组织结构,若要定义有界上下文,可以使用 DDD 上下文映射模式,关于 eShopOnContainers 项目中的微服务定义。

6263次播放

第04期-基于微服务的容器化应用程序

  • 2020-01-03 23:09:40
  • 30 分钟

理解 Docker 容器、映像和注册表,容器的设计原则,容器化单体式应用程序,容器化应用程序中的状态和数据共享,容器化面向 SOA 服务的体系结构,微服务体系结构指南,微服务与 DDD 界定上下文模式之间的关系,逻辑体系结构与物理体系结构。

6952次播放

第03期-使用VisualStudio运行项目源码

  • 2020-01-02 22:47:24
  • 33 分钟

配置 Visual Studio 开发环境,运行 eShopOnContainers 项目源码,快速生成 Docker 映像,将映像推到容器中运行,使用可视化管理工具查看映像与容器,探索微服务接口和 Web 应用程序,运行基于 Xamarin 开发的 iOS、Android 和 UWP 移动应用,分别使用模拟器和真机运行移动应用。

6677次播放

第02期-使用CLI命令行运行项目源码

  • 2020-01-01 10:30:28
  • 44 分钟

微服务体系结构与容器化应用程序,虚拟机与容器,系统需求,硬件要求与软件要求,配置 Docker 容器主机,使用脚本配置网络防火墙,克隆项目到本地,项目结构目录说明,构建并生成应用程序映像,将微服务映像推到容器中运行,探索应用程序中提供的各种微服务。

3074次播放

第01期-项目总体概况

  • 2019-12-27 20:13:52
  • 16 分钟

在微服务架构非常流行的今天,微软也提供了一个基于 .NET Core 平台的微服务架构参考示例,微软 eShopOnContainers 项目架构基于 .NET Core 平台和 Docker 容器,提供一个简化版的在线商城项目,该项目中所使用了很多技术点,可供参考学习,微服务架构图,客户端应用与服务端应用,微服务架构模式,适用于容器化的 .NET 应用程序的体系结构。

6176次播放