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來實現。

相關文章
相關標籤/搜索