自研Java分佈式產品如何技術選型,有哪些比較好的技術推薦?

西域大土豆


一個非常好的問題。推薦Java + Spring Boot,詳細功能組件介紹如下。

Java是主流開發語言,應用普遍,Spring Boot是常用框架,有豐富的組件和易用功能,在電商系統、信息管理系統、各種企業應用開發中處於壟斷地位。

一,系統架構

基本框架可分為接口服務、數據層、異步任務調度、業務處理、日誌監控等幾大模塊。

1,集成ActiveMQ消息隊列,平滑高峰期負載

高峰期時,為了及時處理響應客戶端請求,系統架構中引入ActiveMQ消息隊列,異步處理業務數據,將瞬間高負載平滑,保障運行穩定,架構易擴展。

2,集成Redis緩存系統,提高數據讀寫效率,並支持故障恢復

數據保存到Redis緩存中,和使用內存相比有兩個優點:

1)在架構上支持集群擴展,多個服務器節點時,處理業務邏輯讀寫數據時,通過Redis系統保持一致。

2)在服務重啟或者發生故障時,可以恢復當前處理的業務數據。

3,集成WebSocket,實時更新數據到後臺管理頁面,又不增加服務器負載

如何更新顯示數據或者狀態信息到後臺管理頁面中?有兩個方案可選。

1)定時調用接口,為了及時顯示,定時任務執行頻率會設置的比較高。這樣就帶來兩個問題,首先是增加服務器負載,其次是在沒有新數據時,仍然需要頻繁的調用接口。

2)WebSocket推送數據,業務處理服務在收到新請求或者狀態發生變化時,推送數據到後臺管理頁面,不僅做到了信息實時顯示,而且佔用服務器資源非常少,在多個管理後臺打開頁面時,不額外增加服務器負載。

二,功能組件介紹

1. 數據層,MySQL數據庫,MyBatis持久層,Flyway版本化管理數據庫SQL腳本,Ali Druid連接池等框架。Hibernate是另一個經常使用的持久化框架。

MyBatis Plus對MyBatis做了進一步增強、簡化開發和提高效率,並且提供了簡單易用的代碼生成器。

2. 緩存系統,最常使用Redis,也可選用MongoDB等其他NoSQL數據庫。

3. 異步消息隊列,常用ActiveMQ,RocketMQ,RabbitMQ,Kafka,考慮部署維護的複雜度,根據項目的業務量選擇。

4. JSON數據處理,常用Fastjson,Gson,Jackson,Json-lib,推薦Fastjson。

5. 開發工具包,常用Apache Commons套件,lang, collections, codec, io等功能庫。

6. 異步任務調度,複雜耗時任務,使用Quartz框架異步執行。小型項目可以使用Spring框架自帶的Schedule。

7. 單元測試JUnit + Mockit,覆蓋功能函數,保障代碼質量。

8. 日誌系統,集成LogBack,接入LogStash配合ELK分析處理。

9. 服務監控,使用Actuator等框架實現運行信息收集和報警,配合圖像化展示工具,比如Prometheus + Grafana + AlertManager

10. Swagger接口文檔,將代碼和文檔融合一體,在修改代碼的同時維護文檔。

11. Postman接口調試工具,導出腳本文件方便團隊協作,並且可以自動化運行。

三,功能組件列表

四,部署運維

推薦使用Docker容器,啟動本地開發環境,自動化運維部署。阿里雲容器鏡像服務+Git+Docker鏡像自動構建系統。


我是工作多年的Web應用架構師,陸續發佈關於軟件開發方面的文章,歡迎關注我,瞭解更多IT專業知識。


急速馬力快de源碼控


服務開發: Springboot、Spring、SpringMVC\t

服務配置與管理:\tNetflix公司的Archaius、阿里的Diamond等\t

服務註冊與發現:\tEureka、Consul、Zookeeper等\t

服務調用:\tREST、RPC、gRPC\t

服務熔斷器:\tHystrix、Envoy等\t

負載均衡:\tRibbon、Nginx等\t

服務接口調用(客戶端調用服務發簡單工具):\tFeign等\t

消息隊列:\tkafka、RabbitMQ、ActiveMQ等\t

服務配置中心管理:\tSpringCloudConfig、Chef等\t

服務路由(API網關):\tZuul等\t

服務監控:\tZabbix、Nagios、Metrics、Spectator等\t

全鏈路追蹤\t:Zipkin、Brave、Dapper等\t

服務部署\t:Docker、OpenStack、Kubernetes等\t

數據流操作開發包\t:SpringCloud Stream(封裝與Redis,Rabbit、Kafka等發送接收消息)\t

事件消息總線\t:SpringCloud Bus


敏捷導航


目前市面比較流行的有springcloud,dubbo等。個人推薦springcloud


分享到:


相關文章: