Taroco

Project Url: liuht777/Taroco
Introduction: 整合了 Spring Cloud 的配置中心、注册中心、服务网关,提供了一系列 starter 组件, 同时提供服务治理、服务监控、auth2 权限认证,支持服务降级/熔断、基于标签(x-label)的路由、服务权重,前端采用 vue+elementUI+webpack,可以很好的解决转向 Spring Cloud 的一系列问题。
More: Author   ReportBugs   
Tags:

License PRs Welcome

前言

'Taroco' 是一整套的微服务企业级解决方案。是微服务敏捷开发的代表。

项目介绍

Spring Cloud 是一个微服务框架,相比 Dubbo 等 RPC 框架, Spring Cloud 提供更全面的分布式系统解决方案。Spring Cloud 对微服务基础框架 Netflix 的多个开源组件进行了封装,同时又实现了和云端平台以及和 Spring Boot 开发框架的集成。 Spring Cloud 为微服务架构开发涉及的统一认证,配置管理,服务治理,熔断机制,动态路由等提供了一种简单的开发方式。

Spring Cloud 本身已经封装得足够简单,也够丰富。也许正是因为这种简单而丰富,使得想要使用它的团队望而却步。学习成本太高,历史包袱太重,维护成本太高等等一系列原因。

Taroco 就是为了解决这一问题而诞生的。 Taroco 整合了 Spring Cloud 的配置中心注册中心服务网关,提供了一系列 starter 组件, 同时提供服务治理服务监控OAuth2 权限认证,支持服务降级/熔断基于标签(x-label) 的路由服务权重,前端采用vue+elementUI,可以很好的解决技术转向 Spring Cloud 的一系列问题,努力打造全方位的微服务敏捷开发解决方案。

Taroco 提供了基于 Docker Compose 的部署方式。配置文件统一放置在 docs 目录中,运行脚本案例在根目录中查找。

主要实现功能

  • Spring Cloud Eureka 注册中心
  • Spring Cloud Config Server 配置中心,统一管理配置信息
  • Spring Cloud Zuul Gateway 统一微服务网关配置,支持动态路由配置
  • 基于 spring-boot-starter-actuator 的自实现的服务治理。包括日志、变量、映射等情况。
  • 基于 Hystrix 的聚合监控页面,包括单个服务和服务多个实例的监控。
  • 基于 Spring Security OAuth2 的权限认证系统。采用 JWT RSA 非对称加密的形式进行 token 加密解密。
  • 支持基于权重以及基于标签的服务路由,支持动态配置服务权重及标签信息。通过控制用户标签以及动态路由的配置,满足各种各样请求策略。
  • 基于角色的 RBAC 权限控制(用户、部门、角色、菜单、日志、字典、动态路由、oauth2 客户端),支持按钮级别的权限控制以及数据权限控制(DataScope)。
  • 基于 Zipkin 的调用链追踪(如果生产上使用,还需要把监控内容持久化比,如采用 ElasticSearch,把监控内容从发送 http 请求切换到 MQ 等改造)。

分支版本

  • 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 是当前维护的版本。
  • Master 分支已经改为从 2.x merge 代码,今后更新的中心也会放在 2.x 分支上。

整体架构

架构图

项目目录结构

├── taroco-cloud  --微服务相关组件
│   ├── cloud-admin --服务治理相关
│   ├── cloud-config  --服务配置中心
│   ├── cloud-monitor --服务监控
│   ├── cloud-registry  --服务注册中心
├── 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-demo --demo 案例
├── taroco-docs --文档、截图、docker 文件、初始化脚本
├── taroco-gateway --微服务网关
├── taroco-oauth2 --认证中心
│   ├── authentication-server --统一认证服务
│   ├── oauth2-config --oauth2 抽象封装
│   ├── sso-demo1 --sso 案例
│   ├── sso-demo1 --sso 案例
├── taroco-rbac --基于角色的权限控制服务

项目截图

login menu route monitor servers api zipkin

后端环境

  • JDK1.8+
  • Spring Boot 1.5.12
  • Spring Cloud Edgware.SR4
  • Maven 3.0+
  • Redis 3.0+
  • MySQL 5.7
  • IDEA

前端

Taroco 前端基于开源项目 D2Admin 构建。

D2Admin 中文文档:D2Admin Document

链接推荐

资源下载

友情链接

LICENSE

MIT

Support Me
Apps
About Me
Google+: Trinea trinea
GitHub: Trinea