開箱即用的Dubbo模版
前言
近期做的專案是一個采用Dubbo架構的微服務專案,由于之前雖然學習過Dubbo架構但是一直沒有機會獨自搭建過,于是趁著這個機會憑借著自己淺薄的理解自己完整地搭建了一個開箱即用的spring-dubbo-demo,
正文
開箱即用的Dubbo模版
這里簡單介紹一下這個專案的的結構
spring-dubbo-demo
spring-dubbo-api:這個模塊主要存放對外提供的dubbo介面,spring-dubbo-common:存放著一些常用的工具類、自定義標簽、列舉類等,spring-dubbo-dao:提供資料訪問模塊,比如mysql資料庫,spring-dubbo-middleware:用于連接訊息中間件,如訊息佇列,spring-dubbo-gateway:專案的網關模塊,用于負載均衡、限流等,spring-dubbo-producer:模擬producer業務模塊,spring-dubbo-comsumer:模擬comsumer業務模塊,
根據專案中各個模塊的關系,簡單描繪了這個專案的架構圖:

專案的技術堆疊
Nacos服務治理中心和配置中心
Nacos提供了四個主要功能
- 服務發現和服務運行狀況檢查(服務治理):
Nacos使服務易于注冊自己并通過DNS或HTTP介面發現其他服務,Nacos還提供服務的實時運行狀況檢查,以防止向不正常的主機或服務實體發送請求, - 動態配置管理:動態配置服務使您可以在所有環境中以集中和動態的方式管理所有服務的配置,
Nacos消除了在更新配置時重新部署應用程式和服務的需求,這使配置更改更加有效和敏捷, - 動態
DNS服務:Nacos支持加權路由,使您可以更輕松地在資料中心內的生產環境中實施中間層負載平衡,靈活的路由策略,流控制和簡單的DNS決議服務,它可以幫助您輕松實作基于DNS的服務發現,并防止應用程式耦合到特定于供應商的服務發現API, - 服務和元資料管理(分布式配置):
Nacos提供了易于使用的服務儀表板,可幫助您管理服務元資料,配置,kubernetes DNS,服務運行狀況和指標統計資訊,
Nacos既可以作為服務治理中心(可以替代 Spring Cloud Eureka)也可以作為配置中心(可替代 Spring Cloud Config),
Nacos作為一個單獨的服務進行部署,不需要用戶搭建專案作為服務治理節點,
具體的使用可參考我的博客:Nacos服務治理中心和配置中心
Gateway微服務網關
Gateway提供了一個用于在Spring MVC之上構建API網關的庫,Spring Cloud Gateway旨在提供一種簡單而有效的方法來路由到API,并為它們提供跨領域的關注點,例如:安全性,監視/指標和彈性,
Spring Cloud Gateway可以實作以下功能:
- 建立在
Spring Framework 5,Project Reactor和Spring Boot 2.0之上 - 能夠匹配任何請求屬性上的路由,謂詞和過濾器特定于路由
Hystrix斷路器集成Spring Cloud DiscoveryClient集成- 易于撰寫的謂詞和過濾器
- 請求速率限制,即限流
- 路徑改寫
具體的使用可參考我的博客:微服務網關-Gateway
ElasticJob分布式定時器
ElasticJob是一種分布式調度解決方案,由兩個單獨的專案ElasticJob-Lite和ElasticJob-Cloud組成,
通過靈活的調度,資源管理和作業管理功能,它創建了適合Internet場景的分布式調度解決方案,并通過開放式架構設計提供了多元化的作業生態系統,它為每個專案使用統一的作業API,開發人員只需要一次撰寫代碼,就可以隨意部署,
具體的使用可參考我的博客:Elastic-job實作分布式定時任務
RocketMQ訊息佇列
Apache RockerMQ是一個分布式訊息傳遞引擎,輕量級的資料處理平臺,
它具有以下的特性:
- 低延遲: 高壓下在1毫米內回應延遲超過99.6%,
- 財務導向:具有跟蹤和審核功能的高可用性,
- 產業可持續發展:萬億級訊息容量,
- 大資料友好:具有通用集成功能的批處理傳輸實作大批量吞吐,
- 兼容性好:提供開放式分布式訊息傳遞和流傳輸標準,
- 萬億級容量:給定足夠的磁盤空間,可以在不損失性能的情況下累計郵件,
具體的使用可參考我的博客:SpringBoot整合RocketMQ實作訊息佇列
knife4j介面除錯
knife4j是為Java MVC框架集成Swagger生成Api檔案的增強解決方案,前身是swagger-bootstrap-ui,具有小巧,輕量,并且功能強悍的優點,
Knife4j提供兩大核心功能:檔案說明 和 在線除錯
- 檔案說明:根據
Swagger的規范說明,詳細列出介面檔案的說明,包括介面地址、型別、請求示例、請求引數、回應示例、回應引數、回應碼等資訊,使用swagger-bootstrap-ui能根據該檔案說明,對該介面的使用情況一目了然, - 在線除錯:提供在線介面聯調的強大功能,自動決議當前介面引數,同時包含表單驗證,呼叫引數可回傳介面回應內容、
headers、Curl請求命令實體、回應時間、回應狀態碼等資訊,幫助開發者在線除錯,而不必通過其他測驗工具測驗介面是否正確,簡潔、強大,
具體的使用可參考我的博客:SpringBoot使用knife4j進行在線介面除錯
原始碼
專案原始碼可從的我的github中獲取:github原始碼地址

CSDN認證博客專家
Java
Redis
架構
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/55796.html
標籤:其他
上一篇:CAP定理[布魯爾定理]
下一篇:MySQL 主從復制
