All Projects → micyo202 → Lion

micyo202 / Lion

Licence: apache-2.0
使用Gradle构建,基于Java 8/11/13、SpringBoot 2.2.6.RELEASE、SpringCloud Hoxton.SR2、Spring Cloud Alibaba 2.2.0.RELEASE、MyBatis Plus 3.3.1等核心技术体系实现的一套支持云原生的分布式微服务架构,提供OAuth2/JWT权限认证、分布式事务、灰度、限流、熔断降级、分布式锁、链路追踪、MQ等功能,支持Docker容器化部署、镜像交付、K8S容器编排

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Lion

Ruoyi Cloud
(RuoYi)官方仓库 基于Spring Boot、Spring Cloud & Alibaba的分布式微服务架构权限管理系统
Stars: ✭ 160 (-55.56%)
Mutual labels:  springboot, springcloud, feign, zipkin, oauth2
hanzo-cloud
SpringCloud(Hoxton.SR5) + SpringBoot(2.3.0.RELEASE)的 SaaS型微服务后端脚手架。授权中心开发完毕。文档地址:https://www.kancloud.cn/hanzo/hanzo
Stars: ✭ 15 (-95.83%)
Mutual labels:  oauth2, springboot, feign, springcloud
Springcloud
基于SpringCloud2.1的微服务开发脚手架,整合了spring-security-oauth2、nacos、feign、sentinel、springcloud-gateway等。服务治理方面引入elasticsearch、skywalking、springboot-admin、zipkin等,让项目开发快速进入业务开发,而不需过多时间花费在架构搭建上。持续更新中
Stars: ✭ 6,997 (+1843.61%)
Mutual labels:  springboot, springcloud, zipkin, oauth2
Hope Cloud
🐳 Hope-Cloud is a Java microservice project
Stars: ✭ 155 (-56.94%)
Mutual labels:  springboot, springcloud, ribbon, feign
Spring Cloud Study
SpringCloud源码实战微服务框架(202003更新到SpringCloud的Greenwich版本,即基于SpringBoot2.1.7版本,以及新增SpringCloud Alibaba从入门到精通教程),涉及内容:配置中心,注册中心,服务提供者,服务消费者,熔断器,配置服务,API Gateway,API网关限流ratelimit,服务链路追踪zipkin,hystrix监控,监控聚合中心turbine等
Stars: ✭ 215 (-40.28%)
Mutual labels:  springboot, springcloud, ribbon, feign
Fw Spring Cloud
SpringCloud构建实战、从入门到高级,包含eureka、zuul、gateway、feign、ribbon、hystrix、mq、turbine、nacos、elk、consul、zookeeper、rocketmq、kafka、分布式事务(RocketMq、LCN、Seata)、分库分表(Sharding-JDBC)、分布式锁(Redis、Guava)、jwt、SkyWalking、Zipkin、bootadmin等使用案例
Stars: ✭ 276 (-23.33%)
Mutual labels:  ribbon, feign, zipkin, jwt
Spring Boot In Action
Spring Boot 系列实战合集
Stars: ✭ 4,153 (+1053.61%)
Mutual labels:  springboot, springcloud, jwt
Lamp Cloud
lamp-cloud 基于Jdk11 + SpringCloud + SpringBoot的微服务快速开发平台,其中的可配置的SaaS功能尤其闪耀, 具备RBAC功能、网关统一鉴权、Xss防跨站攻击、自动代码生成、多种存储系统、分布式事务、分布式定时任务等多个模块,支持多业务系统并行开发, 支持多服务并行开发,可以作为后端服务的开发脚手架。代码简洁,注释齐全,架构清晰,非常适合学习和企业作为基础框架使用。
Stars: ✭ 4,125 (+1045.83%)
Mutual labels:  springboot, springcloud, jwt
Fw Cloud Framework
基于springcloud全家桶开发分布式框架(支持oauth2认证授权、SSO登录、统一下单、微信公众号服务、Shardingdbc分库分表、常见服务监控、链路监控、异步日志、redis缓存等功能),实现基于Vue全家桶等前后端分离项目工程
Stars: ✭ 717 (+99.17%)
Mutual labels:  springboot, springcloud, oauth2
Javaspringbootsamples
SpringBoot、Dubbo、SpringCloud的各种集成例子:Atomikos、gRPC、Thrift、Seata、ShardingSphere、Dubbo、Hmily、Nacos、Consul、Ribbon、Jedis、Lettuce、Redisson等框架
Stars: ✭ 399 (+10.83%)
Mutual labels:  springboot, springcloud, ribbon
Spring Boot Quick
🌿 基于springboot的快速学习示例,整合自己遇到的开源框架,如:rabbitmq(延迟队列)、Kafka、jpa、redies、oauth2、swagger、jsp、docker、spring-batch、异常处理、日志输出、多模块开发、多环境打包、缓存cache、爬虫、jwt、GraphQL、dubbo、zookeeper和Async等等📌
Stars: ✭ 1,819 (+405.28%)
Mutual labels:  springboot, jwt, oauth2
Bcmall
以教学为目的的电商系统。包含ToB复杂业务、互联网高并发业务、缓存应用;DDD、微服务指导。模型驱动、数据驱动。了解大型服务进化路线,编码技巧、学习Linux,性能调优。Docker/k8s助力、监控、日志收集、中间件学习。前端技术、后端实践等。主要技术:SpringBoot+JPA+Mybatis-plus+Antd+Vue3。
Stars: ✭ 188 (-47.78%)
Mutual labels:  springboot, springcloud, jwt
Xxproject
SpringCloud 微服务综合实例。分布式配置中心,服务发现&负载均衡,链路断路器,API网关,OAuth2认证授权,分布式追踪,ELK日志中心,Ansible/Docker持续交付等最佳实践。
Stars: ✭ 371 (+3.06%)
Mutual labels:  springcloud, zipkin, oauth2
Spring Boot Cloud
基于 Spring Boot、Spring Cloud、Spring Oauth2 和 Spring Cloud Netflix 等框架构建的微服务项目
Stars: ✭ 2,044 (+467.78%)
Mutual labels:  ribbon, feign, zipkin
Spring Cloud Cli
基于Spring Cloud实现微服务前后端系统
Stars: ✭ 351 (-2.5%)
Mutual labels:  springboot, springcloud, jwt
weweibuy-framework
基于Springboot 封装的基础组件, 包括: Http请求响应日志,日志脱敏,APM, 加解密,签名(AES,BCrypt,RSA,JWT),数据库脱敏,报文脱敏,下滑线风格URL传参,统一异常处理,feign mock,feign日志,feign报文风格转换,跨应用异常上抛,自动补偿组件,幂等组件,RocketMq客户端
Stars: ✭ 24 (-93.33%)
Mutual labels:  springboot, feign, springcloud
Superboot
随着技术日新月异,新技术新平台不断出现,对现如今的开发人员来说选择快速高效的框架进行项目开发,既能提高产出,又能节约时间。本框架无需开发即可实现服务注册、服务发现、负载均衡、服务网关、配置中心、API管理、分布式事务、支撑平台、集成框架、数据传输加密等功能,是学习SpringCloud整体业务模式的完整示例,并且可以直接用于生产环境
Stars: ✭ 341 (-5.28%)
Mutual labels:  springboot, springcloud, feign
Dokit
基于 Spring Boot2、 Jpa、 Spring Security、JWT、redis、Vue的前后端分离的后台管理系统开发平台, 用户管理、菜单管理、角色管理、字典管理、权限控制的方式为RBAC,操作日志、异常日志、接口限流、项目支持数据权限管理,支持一键生成前后端代码(支持在线预览及打包下载),支持前端菜单动态路由 可一键部署服务器应用,数据库。系统中活跃用户状态监控,监视当前系统CPU、内存、磁盘、堆栈等相关信息,基于Element UI在线表单设计及生成Vue代码。
Stars: ✭ 348 (-3.33%)
Mutual labels:  springboot, jwt
Lamp Boot
lamp-boot 基于SpringBoot(2.3.6.RELEASE) 的前后分离的快速开发平台,其中的可配置的SaaS功能尤其闪耀, 具备RBAC功能、网关统一鉴权、Xss防跨站攻击、自动代码生成、多种存储系统、分布式事务、分布式定时任务等多个模块,支持多业务系统并行开发, 支持多服务并行开发,可以作为后端服务的开发脚手架。代码简洁,注释齐全,架构清晰,非常适合学习和企业作为基础框架使用。
Stars: ✭ 257 (-28.61%)
Mutual labels:  springboot, springcloud
Yfax Parent
SprintBoot开发的Rest API接口项目实战,集成了拦截器,日志处理,mysql,mybatis, oauth2.0, spring secutity等,已投入生产线上使用。应用了https://github.com/hemin1003/spring-boot-study 所含功能。配套的后台管理系统实战见:https://github.com/hemin1003/aylson-parent
Stars: ✭ 271 (-24.72%)
Mutual labels:  springboot, oauth2

= Lion

image::https://upload-images.jianshu.io/upload_images/8015461-16e4831f4de664c7.png[align="center"]

//image:https://github.com/micyo202/lion/workflows/Java%20CI%20with%20Gradle/badge.svg["Lion CI with Gradle", link="https://github.com/micyo202/lion/runs/775396303?check_suite_focus=true"] image:https://travis-ci.org/micyo202/lion.svg?branch=master["Build Status", link="https://travis-ci.org/micyo202/lion"] image:https://badges.gitter.im/micyo202/lion.svg["Gitter", link="https://gitter.im/micyo202/lion?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge"] image:https://app.codacy.com/project/badge/Grade/bcb58d648e0e4e15a90fade3f96278ed["Codacy Badge", link="https://www.codacy.com/gh/micyo202/lion/dashboard?utm_source=github.com&utm_medium=referral&utm_content=micyo202/lion&utm_campaign=Badge_Grade"] image:https://codecov.io/gh/micyo202/lion/branch/master/graph/badge.svg["Codecov", link="https://codecov.io/gh/micyo202/lion"] image:https://img.shields.io/badge/Version-2.0.8-DAA520.svg["Version", link="https://github.com/micyo202/lion/releases"] image:https://img.shields.io/badge/Java-8/11/13-DA001C.svg["Java", link="https://www.oracle.com/technetwork/java/javase/downloads/index.html"] image:https://img.shields.io/badge/Gradle-6.6-01BC7E.svg["Gradle", link="https://gradle.org"] image:https://img.shields.io/badge/SpringBoot-2.2.6.RELEASE-4682B4.svg["Spring Boot", link="https://spring.io/projects/spring-boot"] image:https://img.shields.io/badge/SpringCloud-Hoxton.SR2-5DBF3D.svg["Spring Cloud", link="https://spring.io/projects/spring-cloud"] image:https://img.shields.io/badge/Apache License-2.0-lightgrey.svg["Apache License 2.0", link="https://github.com/micyo202/lion/blob/master/LICENSE"] image:https://img.shields.io/github/stars/micyo202/lion.svg?style=social&label=Stars["GitHub Stars", link="https://github.com/micyo202/lion"] image:https://img.shields.io/github/forks/micyo202/lion.svg?style=social&label=Fork["GitHub Fork", link="https://github.com/micyo202/lion"]


lion 是基于 Spring Cloud 体系实现的一套支持云原生的分布式微服务架构,为了让中小型公司解决当下技术瓶颈,快速将现有应用服务架构拆分改造为分布式微服务架构,进入 All-in-Cloud 时代,只需在本架构上进行相关业务开发即可,大大减少了分布式微服务架构的门槛,使架构师及开发人员不必过多的关注架构本身,只需专注于业务开发

项目采用 Gradle 构建,基于 Java 8/11/13、SpringBoot 2.2.6.RELEASE、SpringCloud Hoxton.SR2、Spring Cloud Alibaba 2.2.0.RELEASE、MyBatis Plus 3.3.1 等核心技术体系实现的一套支持云原生的分布式微服务架构,提供 OAuth2/JWT 权限认证、分布式事务、灰度、限流、熔断降级、分布式锁、链路追踪、MQ等功能,支持 Docker 容器化部署、镜像交付、K8S容器编排

使用 Nacos 作为服务注册/发现、配置中心

使用 Sentinel 来查看近实时的接口运行状态和调用频率,并用作服务限流、熔断降级等处理,避免了分布式服务之间调用的“雪崩”效应

使用 Seata 作为分布式事务管理,采用AT事务模式自动完成两阶段提交/回滚

使用 Spring Boot Admin 来监控各个独立 Service 的运行状态

使用 Spring Cloud Gateway 作为路由网关服务

使用 Zipkin / SkyWalking 进行查看完整链路追踪信息等

使用 Feign, 做到HTTP请求远程服务时能与调用本地方法一样的编码体验,开发者完全感知不到这是远程方法,更感知不到这是个HTTP请求

项目后期会不断更新与时俱进,敬请期待...

项目镜像已经推送至 https://hub.docker.com[Docker Hub],请前往 https://hub.docker.com/u/micyo202 查看/拉取

== 项目架构图

image::https://upload-images.jianshu.io/upload_images/8015461-c10225e5f151d9c0.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200[align="center"]

== 数据库表关系图

image::https://upload-images.jianshu.io/upload_images/8015461-75795f0b6dd09d59.png?imageMogr2/auto-orient/strip|imageView2/2/w/1108[align="center"]

== 分支说明

== 一、项目开发环境&工具

  • MacOS / Windows
  • CentOS
  • Java 8/11/13
  • IntelliJ IDEA / Eclipse

== 二、相关软件

说明: 表示必要服务, x 表示非必要服务

|=== | 名称 | 链接 | 必须

| MySql 8.0.19 | https://www.mysql.com ^| √

| Redis 5.0.7 | https://redis.io ^| √

| RabbitMQ 3.8.2 | https://www.rabbitmq.com ^| √

| Nacos 1.1.4 | https://nacos.io ^| √

| Sentinel 1.7.1 | https://sentinelguard.io ^| √

| Seata 1.0.0 | https://seata.io ^| √

| Zipkin 2.20 | https://zipkin.io ^| x

| SkyWalking 6.6.0 | http://skywalking.apache.org ^| x

| ElasticSearch 7.6.1 | https://www.elastic.co/cn ^| x |===

注:在启动项目前,请先确保启动: https://www.mysql.com[MySql 8.0.19]、 https://redis.io[Redis 5.0.7]、 https://www.rabbitmq.com[RabbitMQ 3.8.2]、 https://nacos.io[Nacos 1.1.4]、 https://github.com/alibaba/sentinel[Sentinel 1.7.1]、 https://seata.io[Seata 1.0.0]这 [big]#6# 个必备服务(#需把 Sentinel 默认端口 8080 改为 8858#),启动方式可参考 https://github.com/micyo202/lion/tree/master/docs[docs]文档

=== 三、组件说明

  • 服务注册/发现、配置中心:Nacos
  • 服务监控:Spring Boot Admin
  • 消息队列:AMQP -> RabbitMQ
  • 负载均衡服务调用:Feign / Ribbon
  • 限流、熔断降级:Sentinel
  • 分布式事务:Seata
  • 路由网关:Spring Cloud Gateway
  • 链路追踪:Spring Cloud Sletuh -> Zipkin / SkyWalking
  • 权限认证:Spring Security -> OAuth2 / JWT
  • 分布式锁:Redisson
  • ORM框架:MyBatis(MyBatis-Plus)
  • 数据源监控:Druid
  • RESTful APIs文档:Knife4j

== 四、项目结构

[source,lua]

lion -- 根目录 ├── lion-admin -- 服务监控 ├── lion-gateway -- 网关服务 ├── lion-common -- 通用工具类 ├── lion-auth -- 安全认证服务 ├── lion-demo -- 示例模块 | ├── lion-demo-provider -- 服务提供者 | ├── lion-demo-consumer -- 服务消费者

== 五、项目部署

. 下载项目 git clone --depth 1 https://github.com/micyo202/lion.git

. 进入项目根目录执行 ./gradlew -x test clean 命令,使用 Gradle 初始化项目

. 初始化完毕后导入到 IDE 开发工具中(建议使用 https://www.jetbrains.com/idea?from=lion[IntelliJ IDEA] 作为开发工具)

. 按照文档中 [big]#[underline]##二、相关软件### 的内容,启动 [big]#6# 个必备服务,否则项目无法正常运行

. 创建 [big]##3## 个数据库分别为 lion、seata、zipkin 并分别执行项目根目录下 database 中的 https://github.com/micyo202/lion/blob/master/database/lion.sql[lion.sql]、 https://github.com/micyo202/lion/blob/master/database/seata.sql[seata.sql]、 https://github.com/micyo202/lion/blob/master/database/zipkin.sql[zipkin.sql] 脚本,该脚本会创建项目所需的表(lion库中包含:用户表、角色表、菜单资源表等,seata库中包含:全局事务表、分支事务表、全局锁表,zipkin库中包含:链路追踪相关表)

. 根据自己的服务器情况,修改 resourcesbootstrap.yml 配置中的 nacos 服务地址,及 application.yml 配置中 mysql、redis、rabbitmq、sentinel 的服务地址跟用户名/密码

. 将修改后的 application.yml 配置文件按应用名并分环境放入 nacos 配置管理中(#dev / test / prod#)

. 完成以上步骤就可以正常启动部署服务了

. 项目开发详细示例代码,可参考 lion-demo 示例模块

. 测试方法使用 https://www.getpostman.com[postman] 导入项目根目录下 json 中的 https://github.com/micyo202/lion/raw/master/json/postman.json[postman.json] 脚本即可

== 六、端口使用

  • Nacos(端口:8848)

  • Sentinel(端口:8858)

  • Seata(端口:8091)

  • Zipkin(端口:9411)

  • SkyWalking(端口:8900)

  • lion-admin(端口:8200)

  • lion-gateway(端口:8400)

  • lion-auth(端口:8888)

  • lion-demo ** lion-demo-provider(端口:8601、8602、8603...) ** lion-demo-consumer(端口:8701、8702、8703...)

== 七、效果预览

==== Nacos服务列表

image::https://upload-images.jianshu.io/upload_images/8015461-cda39b98293daeda.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200[align="center"]

==== Nacos配置列表

image::https://upload-images.jianshu.io/upload_images/8015461-292c5fab4c1ec93e.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200[align="center"]

==== Nacos服务详情

image::https://upload-images.jianshu.io/upload_images/8015461-438e0e4f34a9a7fa.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200[align="center"]

==== Boot Admin应用监控

image::https://upload-images.jianshu.io/upload_images/8015461-580075f6fe78e5da.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200[align="center"]

==== Boot Admin应用列表

image::https://upload-images.jianshu.io/upload_images/8015461-907900742c6e853b.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200[align="center"]

==== Boot Admin应用详情

image::https://upload-images.jianshu.io/upload_images/8015461-be406e234a641713.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200[align="center"]

==== Sentinel服务限流、熔断降级

image::https://upload-images.jianshu.io/upload_images/8015461-dd4e2a23d6cc89c7.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200[align="center"]

==== Zipkin链路信息

image::https://upload-images.jianshu.io/upload_images/8015461-5ce77cf7c8d665a2.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200[align="center"]

==== Zipkin链路追踪

image::https://upload-images.jianshu.io/upload_images/8015461-c2abbd5245a492ab.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200[align="center"]

==== Zipkin拓扑图

image::https://upload-images.jianshu.io/upload_images/8015461-2a25bd48123b0f21.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200[align="center"]

==== SkyWalking监控面板

image::https://upload-images.jianshu.io/upload_images/8015461-2eb4eb73e3e1bca6.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200[align="center"]

==== SkyWalking链路追踪

image::https://upload-images.jianshu.io/upload_images/8015461-77ae0216af3e361f.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200[align="center"]

==== SkyWalking拓扑图

image::https://upload-images.jianshu.io/upload_images/8015461-fe35d9af69f6cfa3.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200[align="center"]

image::https://upload-images.jianshu.io/upload_images/8015461-9150e47753478502.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200[align="center"]

==== Druid SQL监控

image::https://upload-images.jianshu.io/upload_images/8015461-1424e4200d3c7d0a.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200[align="center"]

==== Druid URI监控

image::https://upload-images.jianshu.io/upload_images/8015461-31a12c241db25772.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200[align="center"]

==== Druid Spring监控

image::https://upload-images.jianshu.io/upload_images/8015461-b5001ccb2c875735.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200[align="center"]

==== RESTful APIs文档

image::https://upload-images.jianshu.io/upload_images/8015461-aa89273f6d8f3fa7.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200[align="center"]

image::https://upload-images.jianshu.io/upload_images/8015461-c397f97536fade0b.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200[align="center"]

== 八、开源协议

https://github.com/micyo202/lion/blob/master/LICENSE[Apache Licence 2.0]( http://www.apache.org/licenses/LICENSE-2.0.html[英文原文] )Apache Licence 是著名的非盈利开源组织 Apache 采用的协议。该协议和 BSD 类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件也和 BSD 类似:

  • 需要给代码的用户一份 Apache Licence
  • 如果你修改了代码,需要在被修改的文件中说明
  • 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明
  • 如果再发布的产品中包含一个 Notice 文件,则在 Notice 文件中需要带有 Apache Licence。你可以在 Notice 中增加自己的许可,但不可以表现为对 Apache Licence 构成更改

Apache Licence 也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售

[TIP]

注:对未经过授权和不遵循 Apache Licence 2.0 开源协议二次开源或者商业化的我们将追究到底

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].