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去调用这个服务