微服務架構案例(01):項目技術選型簡介,架構圖解說明

本文源碼:GitHub·點這裏 || GitEE·點這裏git

1、單體架構

單體架構在中等偏小的業務中比較常見,場景模式就是單個應用、單個數據庫。一個程序包(例如war格式或者Jar格式)包含全部業務需求功能,這是一種比較傳統的架構風格。github

單體架構的缺陷數據庫

  1. 複雜性高,整個項目包含的模塊多,依賴模糊,修改程序容易觸發不可知問題。
  2. 擴展能力受限,單體應用只能總體進行擴展,沒法針對業務模塊的特性進行伸縮。
  3. 穩定性差,任何微小的問題,均可能致使整個應用服務直接掛掉。

2、微服務架構

微服務架構是一種架構概念,核心思想在於經過將業務功能和需求分解到各個不一樣的服務中進行管理,實現對業務總體解耦。圍繞業務模式建立應用服務,應用服務可獨立地進行開發、迭代、部署。使項目的架構更加清晰明確。緩存

微服務優劣勢mybatis

  1. 單個服務對應單個業務功能,方便理解,開發,維護;
  2. 服務獨立部署,能夠根據每一個服務的請求量來部署知足需求的規模;
  3. 數據庫,服務,架構,業務拆分等難度增大,對技術能力要求較高;

3、項目簡介

微服務架構案例核心內容,基於SpringCloud框架幾個核心組件,Eureka服務註冊與發現組件,Feign聲明式的WebService客戶端組件,Zuul動態路由網關組件。進行多個數據管理,多個服務管理搭建,多箇中間件集成,多業務拆分等模式,搭建SpringCloud微服務框架的綜合應用案例。架構

核心模塊框架

  1. 業務拆分架構設計
  2. 多箇中間件服務集成
  3. 微服務下代碼分塊管理
  4. 多個MySQL數據源管理

4、技術選型

一、核心框架組件

1. 基礎層框架:Spring5+,SpringBoot2+,SpringCloud2+
2. 持久層框架:mybatis,mybatis-plus
3. 開發組件:Druid,Log4j,FastJson,JodaTime,JavaMail
4. 中間件集成:RocketMQ,Redis,Quart,ElasticSearch
5. 數據存儲:MySQL、Redis、ElasticSearch

二、代碼分層結構

5、項目架構

一、架構圖解

二、架構說明

  • 客戶端接口服務
1. 用戶端服務接口;
2. 管理端服務接口;
3. 數據入庫服務接口;
4. 數據分析服務接口
  • 通用服務接口
1. RocketMQ消息隊列服務 ;
2. ElasticSearch搜索引擎服務 ;
3. Quart定時器服務 ;
4. Redis緩存服務 ;
5. 基礎業務:Token認證服務 ;
6. 基礎業務:MsgBox消息中心服務 ;
  • 微服務組件
1. 路由網關:Zuul組件;
2. 服務註冊與發現:Eureka組件;
3. 服務間調用組件:Feign組件;
  • 數據存儲容器
MySQL、Redis、ElasticSearch

6、源代碼地址

GitHub·地址
https://github.com/cicadasmile
GitEE·地址
https://gitee.com/cicadasmile

相關文章
相關標籤/搜索