eShopOnContainers 看微服务 ①:整体概览

1、简介

 

eShopOnContainers是一个简化版的基于.NET Core和Docker等技术开发的面向微服务架构的参考应用数据库

该参考应用是一个简化版的在线商城/电子商务微服务参考示例应用浏览器

其包含基于浏览器的Web应用、基于Xamarin的Android、IOS、Windows/UWP 移动应用,以及服务端应用。其中服务端包含多个自治微服务(每一个都拥有本身的数据/ db),而且每一个微服务都有不一样的实现形式(简单的CRUD与DDD / CQRS模式)。使用Http做为客户端应用程序之间的通讯协议。支持异步通讯,使用Integration Events(集成事件)和Event Bus(事件总线)进行数据更新传播。架构

其中包含的服务:

  1. Identity Micsroservice(身份微服务):身份认证和受权。SQL Server框架

  2. Catalog microservice(产品目录微服务):产品资料的维护。SQL Server异步

  3. Ordering microservice(订单微服务):订单逻辑的处理。SQL Server微服务

  4. Basket microservice(购物车微服务):购物车逻辑的处理。Redis.net

  5. Marketing microservice(市场营销微服务):市场营销逻辑的处理。MongoDB/CosmosDB 和SQL Serve代理

  6. Locations microservice (位置微服务):提供位置服务。MongoDB/CosmosDB 数据库。blog

  7. [New] Payment microservice (支付微服务):处理支付逻辑。事件

2、技术储备

  1. 语言:.net Core、C#
  2. 平台:Docker、Xamarin、K8S
  3. 组件:RabbitMQ、IdentityServer四、Polly、Redis、MongoDb、Api Gateway、MsSqlServer
  4. 模式:EventBus、CQRS、CAP
  5. 管理:CI/CD

3、总体架构

 

该架构主要包括两个部分:客户端应用和Docker主机中运行的服务端应用。

  1. 客户端应用:基于浏览器的Web应用;基于Xamarin开发的Android、IOS、UWP移动应用。

  2. 服务端应用:部署在在Doker主机的系列微服务。

4、服务架构

以上是微软展现的四种services,你还可使用不一样的框架,不一样的数据库完成你的微服务搭建,这就是微服务为什么如此流行的缘由了。我能够利用任何语言,任何数据库都能搭建个人服务,不管个人调用端使用的何种语言,何种系统。

主要有两种架构模式

  1. 基于数据驱动的CURD微服务

  2. 基于DDD的微服务

而实际上,软件架构师和开发人员会使用不一样的架构模式,好比(混合架构风格和架构模式):

  1. 简单的 CRUD,单层

  2. 传统N层

  3. DDD N层

  4. 整洁架构

  5. 命令和查询分离(CQRS)

  6. 事件驱动架构

4、通讯架构:

  1. 客户端与微服务经过API网关通讯:用于查询和接收来自客户端应用程序的更新或事务命令。

  2. 异步事件通讯:经过事件总线传播来自微服务的更新或与外部应用程序集成。事件总线可以使用任何消息代理架构技术如 RabbitMQ来实现。

相关文章
相关标签/搜索