双剑合璧的开源项目Kitty-Cloud
项目地址
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
双剑合璧的开源项目Kitty-Cloud的更多相关文章
- Spring 社区的唯一一个国产开源项目 - Spring Cloud Alibaba 毕业了
阿里妹导读:一年多前,Java 界最近发生了一件大事,阿里开源 Spring Cloud Alibaba,并推出首个预览版.Spring Cloud 本身是一套微服务规范,并不是一个拿来即可用的框架, ...
- Spring Cloud & Alibaba 实战 | 第十二篇: 微服务整合Sentinel的流控、熔断降级,赋能拥有降级功能的Feign新技能熔断,实现熔断降级双剑合璧(JMeter模拟测试)
目录 一. Sentinel概念 1. 什么是Sentinel? 2. Sentinel功能特性 3. Sentinel VS Hystrix 二. Docker部署Sentinel Dashboar ...
- 优秀的Spring Cloud开源项目整理推荐
无论是对于初学者,还是有一定工作经验的程序员来讲,Spring Cloud开源项目都是一笔宝贵的财富.下面给大家整理了十个优秀的开源项目,分别是spring-cloud-examples.spaasc ...
- 【Spring Cloud & Alibaba全栈开源项目实战】:SpringBoot整合ELK实现分布式登录日志收集和统计
一. 前言 其实早前就想计划出这篇文章,但是最近主要精力在完善微服务.系统权限设计.微信小程序和管理前端的功能,不过好在有群里小伙伴的一起帮忙反馈问题,基础版的功能已经差不多,也在此谢过,希望今后大家 ...
- swift开源项目精选
Swift 开源项目精选-v1.0 2016-03-07 22:11 542人阅读 评论(0) 收藏 举报 分类: iOS(55) Swift(4) 目录(?)[+] 转自 http: ...
- Android开源项目分类汇总
目前包括: Android开源项目第一篇——个性化控件(View)篇 包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView. ...
- GitHub上史上最全的Android开源项目分类汇总 (转)
GitHub上史上最全的Android开源项目分类汇总 标签: github android 开源 | 发表时间:2014-11-23 23:00 | 作者:u013149325 分享到: 出处:ht ...
- 【Android】Android开源项目分类汇总
第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.Pro ...
- Android开源项目汇总【转】
主要介绍那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.ProgressBar.TextView ...
随机推荐
- dns原理介绍及实践问题总结
1 问题引入: a) 域名劫持: dns过程中某个环节被攻击/篡改,导致dns结果为劫持者的服务器.例如竞争对手将你方的app下载地址篡改为他方的app下载地址. b) 对现网用户进行监控时,发现个别 ...
- Webpack 核心开发者 Sean Larkin 盛赞 Vue
dev.io 近日邀请了 Webpack 核心开发者 Sean Larkin 回答开发者提问,其中几个问提比较有意思,和掘金的小伙伴们分享一下. 先上点前菜: 有一个开发者问 Sean 如何成为一个热 ...
- React解决长列表方案(react-virtualized)
github地址 高效渲染大型列表的响应式组件 使用窗口特性,即在一个滚动的范围内,呈现你给定数据的一小部分,大量缩减了呈现组件所需的时间,以及创建DOM节点的数量. 缺点:滑动过快,可能会出现空白的 ...
- LeetCode 278.First Bad Version(E)(P)
题目: You are a product manager and currently leading a team to develop a new product. Unfortunately, ...
- 『配置』服务器搭建 Office Online Server2016 实现文档预览 番外 错误篇
安装一个或多个角色.角色服务或功能失败.找不到源文件.请再次尝试在新的“添加角色和功能”向导会话中安装角色.角色服务或功能,然后在向导的“确认”页中单击“指定备用源路径”以指定安装所需的源文件的有效位 ...
- Feign 在 SpringCloud 中的使用 四
此处就单纯写一个消费者服务,通过Feign来调用生产者中的接口,生产者中的接口可以自己随便定义一个,前面博客中也有代码 1.导入springcloud Feign的jar包 <parent> ...
- 汇编语言-[bx]和loop指令和多个段
5.1 [BX]和内存单元的描述 要完成描述一个内存单元,需要两种信息: 内存单元的地址: 可以用 [0] 表示一个内存单元, 0 表示单元的偏移地址,段地址默认在 ds 中: 同样也可以用 [bx] ...
- 超级干货:动态防御WAF技术原理及编程实战!
本文带给大家的内容是动态防御WAF的技术原理及编程实战. 将通过介绍ShareWAF的核心技术点,向大家展示动态防御的优势.实现思路,并以编程实战的方式向大家展示如何在WAF产品开发过程中应用动态防御 ...
- racket学习-call/cc (let/cc)
Drracket continuation 文中使用let/cc代替call/cc Racket文档中,let/cc说明为: (let/cc k body ...+) Equivalent to (c ...
- Spring中的JdbcTemplate的使用
一.jdbcTemplate的作用 它就是用于和数据库交互的,实现对表的crud.与dbutils相似 二.JdbcTemplate的使用 <dependency> <groupId ...