项目示例讲解
为了方便大家使用,在项目中搭建好了测试示例,有 Gateway网关 和 普通服务 两部分。模块如下:
示例中使用的注册中心和配置中心都是 Nacos,默认地址是 127.0.0.1:8848,如果自己的Nacos不是这个地址,只需要在 bootstrap.yml 配置中修改即可
项目中的路由隔离相关的状态默认是打开状态(值为true),故障兜底相关的状态默认是关闭状态(值为false)如果在调试过程中想打开或关闭某个功能,只要配置 true 或 false 即可。
启动网关服务
找到测试示例下的 gateay-test 服务中的启动类,直接启动即可
启动业务服务
服务有消费者和生产者,调用关系是消费者服务来调用生成者。而为了演示多个服务实例实现路由隔离功能,在示例中也设计了多个服务实例。2个消费者服务,2个生产者服务,把这四个启动类启动即可。
启动后就可以接口请求了,请求经过网关、再经过消费者服务、再经过生产者服务。而在调用路由服务的过程中,就可以通过路由参数来进行服务过滤。
请求调用
请求接口路径:
http://127.0.0.1:2501/gateway/consumerservice/consumer/call
请求头:
key:link-flow-version
value:{"generalVersionRule":"1.0"}
在Postman或者Apifox来调用上述请求,并且在请求头中加入上述内容,就可以实现服务版本是 1.0 的过滤调用功能了。
generalVersionRule 的意思是请求中调用到的所有服务版本都是 1.0
返回结果:
{
"provider-service": {
"zone": "test-zone-1",
"version": "1.0",
"group": "test-group"
},
"consumer-service": {
"zone": "test-zone-1",
"version": "1.0",
"group": "test-group"
}
}
能看到返回结果中,生产者服务和消费者服务的版本确实都是 1.0
关于路由请求参数的详细介绍,请跳转到 路由参数详细讲解 的章节中