microservice-integration

by keets2012

microservice-integration with auth, gateway and backend.

459 Stars 166 Forks Last release: Not found MIT License 31 Commits 1 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:

Build Status codebeat badge

整合项目

整合的项目包括网关、auth权限服务和backend服务。提供了一套微服务架构下,网关服务路由、鉴权和授权认证的项目案例。整个项目的架构图如下:

ms

欲了解更多,见博客《微服务架构中整合网关、权限服务

你的star是对我最好的鼓励^_^

change logs

2020.07.6

  • 修复依赖报错,升级依赖

2019.02.28

  • 升级auth-server依赖至Spring Cloud Greenwich.RELEASE和 Spring Boot 2.1.3.RELEASE
  • 删除无用依赖
  • 删除资源服务器相关配置
  • 简化DataSource配置

2019.2.22

服务发布1.0.0.RELEASE版本,当前版本升级Spring Cloud的版本到

Greenwich.RELEASE
。本次功能优化如下:
  • 增加网关异常处理
  • 增加网关函数式降级接口
  • Hystrix降级头部信息获取

2018.9.25

consul的版本为1.0以下的版本 下载链接

增加了Spring Cloud Gateway作为网关实现的模块,详见:微服务网关Zuul迁移到Spring Cloud Gateway

新增功能:

  • 全局断路器
  • 限流过滤器
  • ...

项目使用方法

如果你的GitHub网络有问题,请移步码云:https://gitee.com/keets/microservice-integration

涉及到的组件与服务

微服务架构基于Spring Cloud,用到了部分Spring Cloud提供的组件。

  • consul 服务发现组件,所有的服务注册到该组件,类似zk
  • feign 声明式的http调用组件,Spring Cloud通过该组件实现服务之间的通信
  • 存储主要是mysql和redis,auth的初始化sql脚本已经提供
  • auth-server:端口9091 安全权限服务
  • gateway:端口10101 网关,提供路由转发等
  • backend-server:端口9092 实例的后端服务,提供接口级别的权限校验

端点测试

  1. 安装一下,
    mvn clean install -DskipTests
    ,包括三个模块。
  2. 登录端点

head form

{
    "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1MTMwOTEzMzEsIlgtQU9ITy1Vc2VySWQiOiJjNjIxY2ZlMy02ZjUzLTQ1ZDYtODRiYi0wNzEyMTE5NDZiMjQiLCJ1c2VyX25hbWUiOiJrZWV0cyIsImp0aSI6ImEwODZmMWIyLWEzOTQtNDUwZS1iMDVlLTEzNmE0ZjdlOTEyZiIsImNsaWVudF9pZCI6ImZyb250ZW5kIiwic2NvcGUiOlsiYWxsIl19.MQP8l_RhmZ-rpxAg8Cguq6X6IA1PaKtrwlxZoMjMTLQ",
    "token_type": "bearer",
    "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiJrZWV0cyIsInNjb3BlIjpbImFsbCJdLCJhdGkiOiJhMDg2ZjFiMi1hMzk0LTQ1MGUtYjA1ZS0xMzZhNGY3ZTkxMmYiLCJleHAiOjE1MTU2NDAxMzEsIlgtQU9ITy1Vc2VySWQiOiJjNjIxY2ZlMy02ZjUzLTQ1ZDYtODRiYi0wNzEyMTE5NDZiMjQiLCJqdGkiOiJlZTNhOThlOS0zOThhLTQwYTctOGI0YS1jYzRlOGY4ZmVmNDkiLCJjbGllbnRfaWQiOiJmcm9udGVuZCJ9.k2lVqFfJ0xNkly_10O1u3QQGTHMGp0kxVAEDMjdUgbo",
    "expires_in": 43199,
    "scope": "all",
    "X-AOHO-UserId": "c621cfe3-6f53-45d6-84bb-071211946b24",
    "jti": "a086f1b2-a394-450e-b05e-136a4f7e912f",
    "X-AOHO-ClientId": "frontend"
}

3.刷新端点 refresh

返回结果与上面登录类似。

4.登出端点

out

5.backend后端接口 test

上述请求到达backend被拒绝,因为auth服务使用的userId是随机生成,如果你要真是使用,请修改那部分user服务的实现。

写在最后

项目整合如果遇到问题,可以加入 qq 群(649932629)交流。

ps: qq 交流群已设置付费,可以过滤很多广告,营造高质量的技术交流群。

推荐阅读

  1. 微服务网关netflix-zuul
  2. 认证鉴权与API权限控制在微服务架构中的设计与实现(一)
  3. 认证鉴权与API权限控制在微服务架构中的设计与实现(二)
  4. 认证鉴权与API权限控制在微服务架构中的设计与实现(三)
  5. 认证鉴权与API权限控制在微服务架构中的设计与实现(四)
  6. 微服务架构中整合网关、权限服务

订阅最新文章,欢迎关注我的公众号

微信公众号

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.