專案地址
背景
做這個專案主要是想將個人的一些經驗通過開源的形式進行輸出,不一定能幫到所有人,有感興趣的朋友可以關注學習下。
專案主要分為三大塊:
- Kitty 基礎框架
基礎框架基於Spring Cloud & Spring Cloud Alibaba 進行封裝,內建了 Cat 監控等功能,將框架的操作進行統一封裝和版本管理,方便快速構建微服務架構。讓業務開發人員更關注於業務本身的開發工作。
- Kitty Cloud 後端
使用Kitty基礎框架搭建的微服務架構,業務方向是做一個技術社群。比如發文章,評論,點贊等功能。
- Kitty Cloud 前端(待開發)
前端還沒開始,等後端做完後會開始做前端,應該會採用Vue實現。
後端技術棧
Kitty:Spring Cloud & Spring Cloud Alibaba 基礎框架,內建了 Cat 監控,網際網路公司落地 Spring Cloud 架構必備。
Spring Cloud:Spring 微服務全家桶。
Spring Cloud Alibaba:致力於提供微服務開發的一站式解決方案。
Sentinel:把流量作為切入點,從流量控制、熔斷降級、系統負載保護等多個維度保護服務的穩定性。
Nacos:一個更易於構建雲原生應用的動態服務發現、配置管理和服務管理平臺。
Dubbo:Apache Dubbo™ 是一款高效能 Java RPC 框架。
Cat:基於 Java 開發的實時應用監控平臺,為美團點評提供了全面的實時監控告警服務。
MyBatis-Plus:MyBatis的增強版。
Spring Data MongoDB:Spring 中對MongoDB操作的客戶端框架。
JetCache:基於Java的快取系統封裝,提供統一的API和註解來簡化快取的使用。
ElasticSearch:ElasticSearch 是一個開源,分散式,RESTful搜尋引擎。
專案模組
- kitty-cloud-common:公共模組,通用的工具類
- kitty-cloud-user:使用者服務
- kitty-cloud-article:文章服務
- kitty-cloud-comment:評論服務
- kitty-cloud-gateway:Web閘道器
- kitty-cloud-search:搜尋服務
- kitty-cloud-job:定時任務
- 開發中。。。。。。
專案子模組劃分
- kitty-cloud-article
- kitty-cloud-article-api -- API介面定義,RPC/REST
- kitty-cloud-article-biz -- 業務邏輯
- kitty-cloud-article-provider -- API介面實現,RPC/REST暴露服務
複製程式碼
依賴關係:
包劃分
- kitty-cloud-article-api
- fallback -- Feign/Dubbo 熔斷回退預設實現
- request -- 請求引數
- response -- 響應物件
- service -- Http/Rpc API介面定義
- kitty-cloud-article-biz
- bo -- 業務層響應物件
- convert -- 實體類轉換
- dao -- 資料庫操作
- dataobject -- 資料物件(MySql)
- document -- 文件物件(MongoDB,ElasticSearch)
- enums -- 列舉
- param -- 業務層接收上層的引數
- manager -- 三方操作管理(RPC/Http/快取)
- fallback
- dubbo -- dubbo自定義回退邏輯(替換預設回退邏輯)
- feign -- feign自定義回退邏輯(替換預設回退邏輯)
- service -- 業務處理
- kitty-cloud-article-provider
- convert -- 實體類轉換
- service -- Http/Rpc API介面實現,暴露服務
- KittyCloudArticleProviderApp.java -- Spring Boot 啟動類
複製程式碼
感興趣的可以加個關注哦!github.com/yinjihuan/k…
關於作者:尹吉歡,簡單的技術愛好者,《Spring Cloud微服務-全棧技術與案例解析》, 《Spring Cloud微服務 入門 實戰與進階》作者, 公眾號 猿天地 發起人。
感興趣的可以關注下我的微信公眾號 猿天地,更多技術文章第一時間閱讀。我的GitHub也有一些開源的程式碼 github.com/yinjihuan