【bird-java】bird-java系列文章彙總
阿新 • • 發佈:2018-12-29
bird框架系列是一套前後端分離的整體解決方案。其包括:
- 基於React的工程化的前端框架:bird-front;
- 基於Spring boot與Dubbo的分散式服務框架:bird-java;
bird-java是以Spring boot與Dubbo為基礎的分散式服務框架,專注於業務開發,提煉中後臺應用中的經典業務場景,盡我所能的在我目前的業務場景下做到最佳實踐。本篇文章主要是對bird-java進行概述以及相關文章的彙總。
系列文章
- 快速開始
- bird-java中的一些設計思想
- 服務組成——model
- 服務組成——mapper
- 服務組成——service
- 服務的暴露與呼叫
- 服務之間的事件傳遞——Eventbus
- Web層——介面規約
- Web層——異常處理
- Web層——單點登陸SSO
- Web層——簡易檔案伺服器
- Web層與Dubbo服務之間Session資訊的統一
- 經典業務場景——表格增刪改查
- 經典業務場景——表單開發
- 經典業務場景——資源許可權
技術選型
- 基礎框架:spring
- 服務排程:dubbo
- web層:spring-boot
- 快取:redis
- 資料訪問:mybatis、mybatis-plus
- 資料庫連線池:druid
- 訊息佇列:kafka
- 日誌:slf4j、logback
- 任務排程:quartz
- 服務匯流排:基於Kafka自研EventBus
- 身份認證:自研單點登入
架構圖
- 接入層:即web層,服務的使用者,面向使用者。多系統之間通過sso實現登入與許可權的統一控制。
- 服務層:服務的提供者,每個服務均可叢集部署,服務之間可通過RPC呼叫,也可通過EventBus實現通訊。
- 資料層:包括資料的持久化與快取。每個服務可對應其各自的資料庫,快取使用redis。
- 基礎設施層:為以上各層提供服務,包括日誌、工具類、任務排程等。
功能特性
bird-java提供了許多功能特性,包括:
- 分散式。每個服務均可叢集部署,服務間可自由通訊,每個服務可擁有自己的資料庫,可單獨做讀寫分離。
- EventBus事件匯流排。讓服務間事件傳遞像本地程式一樣簡單。
- 全自動CRUD,表格增刪查改、篩選、排序、分頁均從框架層面解決,業務編碼量不到20行。
- 實現從db->mappper->service->controller各層程式碼一鍵生成。
- 為web與service專案提供不同型別的starter,按配置注入對應的元件,使編碼環境更加簡潔。
示例專案介紹
- service-xxx:服務,服務拆分的最小單位。
- service-xxx-api:服務定義,包括服務介面、Model、DTO、EventArg的定義。
- service-xxx-impl:服務的實現,包括服務實現、Mapper。服務部署的最小單位。
- web-xxx:web層,對外提供介面,可根據業務需要拆分為不同的web層。
專案地址