天天看點

微服務架構案例(04):中間件內建,公共服務封裝

本文源碼:GitHub·點這裡 || GitEE·點這裡

<code>更新進度(共6節):</code>

01:項目技術選型簡介,架構圖解說明
02:業務架構設計,系統分層管理
03:資料庫選型,業務資料設計規劃
04:中間件內建,公共服務管理
中間件是基礎軟體的一類, 屬于複用性極高的軟體。處于作業系統軟體與應用程式的之間。是一種獨立的系統軟體,也可以是公共的服務程式,分布式架構系統借助中間件,可以在不同的技術之間共享資源,或者不同的服務直接傳遞資訊。中間件位作業系統之上,管理計算機資源和網絡通訊。是連接配接兩個獨立應用程式或獨立系統的軟體,例如:

消息隊列中間件,在兩個服務之間進行異步的消息傳遞;

資料緩存中間件,緩存整合系統的熱點資料,提高程式的響應速度;

Nginx中間件,提供負載均衡,服務代理,等功能;

公共服務,顧名思義就是系統内通用的服務,例如使用者身份驗證,消息發送,監控預警,網關服務等。

微服務架構案例(04):中間件內建,公共服務封裝

該案例的中間件和公共服務,都是基于<code>Feign</code>接口統一的方式提供服務。

<code>RocketMq</code>簡介

<code>RocketMq</code> 是一款分布式、隊列模型的消息中間件,有兩個核心角色:消息生産者和消息消費者。作為高并發系統的核心元件之一,能夠幫助業務系統解構提高系統穩定性。

應用流程

消息生産者

消息消費者

提供<code>Feign</code>接口

<code>Redis</code>簡介

<code>Redis</code> 是一個基于記憶體的高性能<code>key-value</code>資料庫。對高并發系統提供各種場景的支撐:熱點資料緩存,計數器,流量削峰等。

封裝操作方法

提供<code>Feign</code>服務

<code>ES</code>搜尋簡介

<code>ElasticSearch</code>是一個基于Lucene的搜尋伺服器。它提供了一個分布式多使用者能力的全文搜尋引擎,基于<code>RESTful</code>的 web接口。是目前流行的企業級搜尋引擎。

<code>Quartz</code> 簡介

<code>Quartz</code>是由<code>Java</code>編寫的開源任務排程的架構,通過觸發器設定作業定時運作規則,控制任務的執行時間。其中<code>quartz</code>叢集通過故障切換和負載平衡的功能,能給排程器帶來高可用性和伸縮性。

<code>Token</code>服務簡介

通過一個公共的<code>Token</code>管理服務,對通路系統的使用者身份做管理:身份令牌建立,校驗,重新整理等。

<code>Msg</code>服務簡介

在一個複雜的系統中,消息通知是一個必備子產品,一般封裝方式主要從下面兩個方式入手,消息類型:使用者消息,系統消息等,消息接收方式:郵件,短信,應用端等。

封裝郵件發送

微服務架構案例(04):中間件內建,公共服務封裝

繼續閱讀