项目地址

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

最新文章

  1. 7.iOS Notification
  2. 【Linux】Too many open files
  3. Fragment基础----创建
  4. 第一个C语言编译器是怎样编写的?
  5. JQuery通过$(xxx...)返回对象
  6. 调整iFrame高度
  7. c#中winform的MVP模式的简单实现
  8. mysql SQL_MODE设置
  9. Java对象的序列化与反序列化:默认格式及JSON格式(使用jackson)
  10. List使用Foreach 修改集合时,会报错的解决方案 (Error: Collection was modified; enumeration operation may not execute. ) - 摘自网络
  11. hdoj 2044一只小蜜蜂...【斐波那契变形】
  12. Fedora 20 Gnome安装及配置记录
  13. 在asp.net中使用ajax记录
  14. 基于Flex的HTTPService(GET和POST)
  15. JavaBean和jsp的开发模型
  16. Django Channels 入门指南
  17. Numpy库的学习(三)
  18. 【APUE | 10】函数signal
  19. windows server配置ftp服务器以及外网访问
  20. 揭开Future的神秘面纱——结果获取

热门文章

  1. 一文看懂Java序列化
  2. node.js-web服务器
  3. pc端适配移动端
  4. 《高性能javascript》阅读摘要
  5. TCP/IP基础总结性学习(6)
  6. 利用pandas选取某个属性符合指定条件的所有行
  7. Python 获取MySql某个表所有字段名
  8. Core + Vue 后台管理基础框架0——开篇
  9. MFC Camera 摄像头预览 拍照
  10. MySQL记录操作(单表查询)