項目地址
https://github.com/yinjihuan/kitty-cloud
背景
做這個項目主要是想將個人的一些經驗通過開源的形式進行輸出,不一定能幫到所有人,有感興趣的朋友可以關注學習下。
項目主要分為三大塊:
- 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 啟動類
感興趣的可以加個關注哦!https://github.com/yinjihuan/kitty-cloud