JHipster学习记录 - 3 JHipster Gateway

https://www.jhipster.tech/api-gateway/

JHipster Gateway介绍

通过之前的学习,我们拥有了registry和uaa, 现在通过gateway来把这些功能串起来

JHipster Gateway也是一个JHipster微服务,它主要做了以下事情:

  1. 它是整个JHipster微服务集群的访问入口
  2. 提供了http路由和负载均衡

JHipster Gateway会为注册上registry的微服务进行http路由,举个例子:服务app1注册上了,那么可以通过/services/app1来对它进行访问

以uaa为例,我们之前通过http://localhost:9999/api/account请求来获取用户的信息
现在我们通过gateway来调用,url变成了http://localhost:8080/services/uaa/api/account

JHipster Gateway安装

很简单,还是通过jhipster命令问答式的自动创建,再通过./mvnw启动

注意:

  1. 服务注册选JHipster Registry
  2. 校验选JHipster UAA

JHipster Gateway使用

浏览器访问 localhost:8080
JHipster学习记录 - 3 JHipster Gateway

可以发现,需要登录,在登录界面通过user/user登录,页面上会出现用户的信息

整个过程是这样的:

  1. 浏览器发送登录请求给到gateway的后台,请求里含有用户账号密码
  2. 后台收到账号密码,向UAA服务发起请求
  3. UAA验证账号密码正确,向gateway返回access_token
  4. gatewayaccess_token放在cookie里返回给浏览器
  5. 浏览器向gateway后台发送请求查询用户信息,请求的cookie里带有access_token
  6. gateway后台从cookie里拿到access_token,把它放在请求头里,发送请求给uaa去查询用户信息
  7. uaa校验access_token正确,返回用户信息给gateway后台
  8. gateway后台把数据返回给浏览器

经过这一步,我们拥有了registry,uaa以及gateway,下一步我们要添加一个新的微服务,并通过gateway去调用这个服务