Taroco

by liuht777

liuht777 / Taroco

整合Nacos、Spring Cloud Alibaba,提供了一系列starter组件, 同时提供服务治理、服务监控、OAuth2权限认证,支持服务降级/熔断、服务权重,前端采用vue+elemen...

506 Stars 217 Forks Last release: over 1 year ago (2.0.1) Apache License 2.0 257 Commits 3 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Taroco

PRs Welcome Total lines License Codacy Badge

前言

'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,整合NacosSentinel,提供了一系列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)

项目截图

login menu route sentinel servers api

后端环境

  • 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

链接推荐

资源下载

友情链接

LICENSE

MIT

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.