Taroco
- 配套前端地址
- 在线文档
- 演示地址
- 统一认证已经单独罗列出来并且做了升级,欢迎star Taroco-Authentication
前言
'Taroco' 力争做到简洁、上手快、代码质量高,并且不做过多的融合操作。比如分布式事务、消息总线等与业务紧密结合的东西,一切脱离业务的设计都是耍流氓。
'Taroco' 拥抱 Spring Cloud Alibaba,为全线微服务保驾护航。
'Taroco' 是微服务敏捷开发的代表,加速中小型项目开发周期。PS:远离996,远离ICU。
项目介绍
Spring Cloud 是一个微服务框架,相比 Dubbo 等 RPC 框架, Spring Cloud 提供更全面的分布式系统解决方案。Spring Cloud 对微服务基础框架 Netflix 的多个开源组件进行了封装,同时又实现了和云端平台以及和 Spring Boot 开发框架的集成。 Spring Cloud 为微服务架构开发涉及的统一认证,配置管理,服务治理,熔断机制,动态路由等提供了一种简单的开发方式。
Spring Cloud 本身已经封装得足够简单,也够丰富。也许正是因为这种简单而丰富,使得想要使用它的团队望而却步。学习成本太高,历史包袱太重,维护成本太高等等一系列原因。
Taroco 就是为了解决这一问题而诞生的。 Taroco 拥抱 Spring Cloud Alibaba,整合Nacos、Sentinel,提供了一系列starter组件, 同时提供服务治理、服务监控、OAuth2 权限认证,支持服务降级/熔断、前端采用Vue,可以很好的解决技术转向 Spring Cloud 的一系列问题,努力打造全方位的微服务敏捷开发解决方案。
Taroco 提供了基于 Docker Compose 的部署方式。配置文件统一放置在docs目录中,运行脚本案例在根目录中查找。
主要实现功能
- 基于Nacos的服务注册中心以及配置中心。
- Spring Cloud Zuul 统一微服务网关配置,支持动态路由配置。
- 基于 Spring-Boot-Admin 的自实现的服务治理。包括日志、变量、映射等情况。
- 基于 Spring Security OAuth2 的权限认证系统(支持手机号登录)。采用JWT RSA非对称加密的形式进行 token 加密解密。
- 整合 Sentinel,对服务及API进行流量控制、熔断降级、系统负载等功能保护,为微服务保驾护航。
- 完善的RBAC权限控制,用户信息通过网关解析到请求头,随后通过自定义注解
@RequireRole
@RequirePermission
,可以灵活有效的进行 API 级别的权限控制。
分支版本
- Branch 1.5.12:基于 Spring Boot 1.5.12.RELEASE + Spring Cloud Edgware.SR4,是Taroco最初的版本;
- Branch 2.x:基于 Spring Boot 2.0.5.RELEASE + Spring Cloud Finchley.SR1;
- Branch nacos: 基于Nacos以及Spring Cloud Alibaba, 是当前维护的版本;
- Master 分支已经改为从nacos merge代码,今后更新的中心也会放在nacos分支上。
整体架构
项目目录结构
├── taroco-authentication --统一认证服务
├── taroco-common-starter --自定义spring boot starter
│ ├── taroco-common-spring-boot-starter --公共依赖模块(全局异常、常量、通用类)
│ ├── taroco-log-spring-boot-starter --通用logback-spring、自定义banner
│ ├── taroco-redis-spring-boot-starter --通用redis配置
│ ├── taroco-ribbon-spring-boot-starter --基于ribbon的服务治理扩展
│ ├── taroco-swagger2-spring-boot-starter --自定义封装swagger2配置
├── taroco-docs --文档、截图、docker文件、初始化脚本
├── taroco-gateway-zuul --微服务网关
├── taroco-oauth2-demo --oauth2 demo项目(客户端、资源服务器、SSO)
├── taroco-rbac --基于角色的权限控制服务
├── taroco-service-governance --服务治理(Spring Boot Admin)
项目截图
后端环境
- JDK1.8+
- Spring Boot 2.0.5
- Spring Cloud Finchley.SR1
- Spring Cloud Alibaba 0.2.2
- Nacos 1.0.0
- Maven 3.0+
- Redis 3.0+
- MySQL 5.7
前端
Taroco 前端基于开源项目 D2Admin 构建。
D2Admin 中文文档:D2Admin Document。
链接推荐
- Spring Boot 2.0.5.RELEASE 官方文档
- Spring Cloud Finchley.SR1 官方文档
- Spring Security OAuth2 开发者指南
- Spring Cloud Alibaba 中文指南
- Nacos 官网
资源下载
- JDK8 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
- Maven http://maven.apache.org/download.cgi
- Redis https://redis.io/download
- ActiveMQ http://activemq.apache.org/download-archives.html
- ZooKeeper http://www.apache.org/dyn/closer.cgi/zookeeper/
- Elastic Stack https://www.elastic.co/downloads
- Nginx http://nginx.org/en/download.html
- Jenkins http://updates.jenkins-ci.org/download/war/