JHipster学习记录 - 3 JHipster Gateway
https://www.jhipster.tech/api-gateway/
JHipster Gateway介绍
通过之前的学习,我们拥有了registry和uaa, 现在通过gateway来把这些功能串起来
JHipster Gateway也是一个JHipster微服务,它主要做了以下事情:
- 它是整个JHipster微服务集群的访问入口
- 提供了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
启动
注意:
- 服务注册选JHipster Registry
- 校验选JHipster UAA
JHipster Gateway使用
浏览器访问 localhost:8080
可以发现,需要登录,在登录界面通过user/user登录,页面上会出现用户的信息
整个过程是这样的:
- 浏览器发送登录请求给到
gateway
的后台,请求里含有用户账号密码 - 后台收到账号密码,向
UAA
服务发起请求 -
UAA
验证账号密码正确,向gateway
返回access_token
-
gateway
把access_token
放在cookie
里返回给浏览器 - 浏览器向
gateway
后台发送请求查询用户信息,请求的cookie
里带有access_token
-
gateway
后台从cookie
里拿到access_token
,把它放在请求头里,发送请求给uaa
去查询用户信息 -
uaa
校验access_token
正确,返回用户信息给gateway
后台 -
gateway
后台把数据返回给浏览器
经过这一步,我们拥有了registry,uaa以及gateway,下一步我们要添加一个新的微服务,并通过gateway去调用这个服务