Skip to content

Mini-Platform致力于更简洁易用的轻量级微服务治理平台。

License

Notifications You must be signed in to change notification settings

hiling/mini-platform

Repository files navigation

Mini-Platform轻量级微服务平台

  • Mini-Platform致力于打造更简洁易用的轻量级微服务治理平台,更易于实施与运维;
  • 核心技术:SpringBoot、Spring Cloud、OAuth2(自研)、MyBatis、Redis、MySQL;
  • 核心功能:服务注册与发现、服务网关、负载均衡、统一认证、配置中心、异常处理等;

mini-config - 配置中心

  • 采用Spring Cloud Config作为统一的配置中心
  • 所有服务启动均需要读取配置,因此配置中心为第一个启动服务;
  • 其他服务通过uri访问配置中心,当启动多个节点时,需要通过nginx等做代理达到高可用

mini-discovery - 注册中心

  • 采用Eureka做服务自动注册与发现;
  • 所有服务启动均需注册到注册中心,因此注册中心为第二个启动服务;
  • 注册中心启动多个节点时,可以在配置中心的config-common/common-discovery中配置多个节点地址

mini-gateway - API网关

  • 采用Zuul做服务网关;
  • 外部请求均需要通过网关进行转发,因此API网关为第三启动服务;
  • API网关启动多个节点时,需要通过nginx等做代理达到高可用;
  • Zuul支持三种路由策略:
    1. 支持基于service-id的动态路由策略,支持负载均衡,支持服务的自动注册与发现,当服务地址变化后无需手动配置,当后端服务引入Eureka client时可选用;
    2. 支持基于url的动态路由策略,支持负载均衡,支持服务的手动注册与发现,当服务地址变化后需要手动配置,当后端服务基于传统HTTP调用时可选用;
    3. 支持基于默认url的动态路由策略,不支持负载均衡,后端服务需要单独处理负载均衡(如Nginx),支持服务的手动注册与发现,配置简单,可在测试中使用;
  • 支持服务异常重试,建议只开启GET的重试,且确保GET的幂等,否则建议关闭;

mini-admin - 监控中心

  • 采用Spring Boot Admin作为统一的监控中心
  • 支持钉钉告警

mini-auth - 授权中心

  • 为了更简单易用,OAuth Server采用自研实现。

  • GrantType支持password、client_credentials、refresh_token。

  • Token支持延迟吊销、滑动过期和绝对过期。

  • 用户名密码验证支持直连用户中心数据库验证和调用远程服务验证两种方式。

  • 密码模式授权,用于客户端与服务器之间的授权,流程如下: oauth-password-flow 注:图例为三次请求,1.1-1.3为首次认证;2.1-2.5为通过Access Token访问后端资源;3.1-3.3为使用Refresh Token获取新的Access Token,可用于Access Token过期前刷新Token; 红色字体是Password与Client授权方式不同的地方。

  • 客户端模式授权,用于服务器与服务器之间的授权,流程如下: oauth-client-flow

  • 微服务模式授权示例,是获取到Access Token后请求后端资源的流程细化,如下: oauth-multi-services-flow


Gateway - ACL

  • Gateway中集成的ACL(访问控制列表)模块,对API进行权限控制。
  • 待实现

Gateway - RateLimiting

  • Gateway中集成的限流模块,对API进行流量控制。
  • 待实现

Gateway - Other

  • Gateway中的Log、Metrics、Trace、Alert、Security、Canary等模块。
  • 待实现

OAuth-Client

  • 使用OAuth的客户端使用;
  • 客户端引用后,只需要继承BaseController便可方便的获取用户信息;
  • 参考示例:UserController.java

项目中使用的其他技术介绍

欢迎Star和Fork,微信号:HilingWang,欢迎交流!