1. 程式人生 > >【bird-java】bird-java系列文章彙總

【bird-java】bird-java系列文章彙總

bird框架系列是一套前後端分離的整體解決方案。其包括:

  • 基於React的工程化的前端框架:bird-front;
  • 基於Spring boot與Dubbo的分散式服務框架:bird-java;

bird-java是以Spring boot與Dubbo為基礎的分散式服務框架,專注於業務開發,提煉中後臺應用中的經典業務場景,盡我所能的在我目前的業務場景下做到最佳實踐。本篇文章主要是對bird-java進行概述以及相關文章的彙總。

系列文章

  1. 快速開始
  2. bird-java中的一些設計思想
  3. 服務組成——model
  4. 服務組成——mapper
  5. 服務組成——service
  6. 服務的暴露與呼叫
  7. 服務之間的事件傳遞——Eventbus
  8. Web層——介面規約
  9. Web層——異常處理
  10. Web層——單點登陸SSO
  11. Web層——簡易檔案伺服器
  12. Web層與Dubbo服務之間Session資訊的統一
  13. 經典業務場景——表格增刪改查
  14. 經典業務場景——表單開發
  15. 經典業務場景——資源許可權

技術選型

  • 基礎框架:spring
  • 服務排程:dubbo
  • web層:spring-boot
  • 快取:redis
  • 資料訪問:mybatis、mybatis-plus
  • 資料庫連線池:druid
  • 訊息佇列:kafka
  • 日誌:slf4j、logback
  • 任務排程:quartz
  • 服務匯流排:基於Kafka自研EventBus
  • 身份認證:自研單點登入

架構圖

  • 接入層:即web層,服務的使用者,面向使用者。多系統之間通過sso實現登入與許可權的統一控制。
  • 服務層:服務的提供者,每個服務均可叢集部署,服務之間可通過RPC呼叫,也可通過EventBus實現通訊。
  • 資料層:包括資料的持久化與快取。每個服務可對應其各自的資料庫,快取使用redis。
  • 基礎設施層:為以上各層提供服務,包括日誌、工具類、任務排程等。

功能特性

bird-java提供了許多功能特性,包括:

  1. 分散式。每個服務均可叢集部署,服務間可自由通訊,每個服務可擁有自己的資料庫,可單獨做讀寫分離。
  2. EventBus事件匯流排。讓服務間事件傳遞像本地程式一樣簡單。
  3. 全自動CRUD,表格增刪查改、篩選、排序、分頁均從框架層面解決,業務編碼量不到20行。
  4. 實現從db->mappper->service->controller各層程式碼一鍵生成。
  5. 為web與service專案提供不同型別的starter,按配置注入對應的元件,使編碼環境更加簡潔。

示例專案介紹

  • service-xxx:服務,服務拆分的最小單位。
  • service-xxx-api:服務定義,包括服務介面、Model、DTO、EventArg的定義。
  • service-xxx-impl:服務的實現,包括服務實現、Mapper。服務部署的最小單位。
  • web-xxx:web層,對外提供介面,可根據業務需要拆分為不同的web層。

專案地址