通过服务治理完成服务注册
1. 进入到对应的 MSE Nacos 实例页面,选择创建服务
2. 我们填写好服务名、分组名之后,可以选择一个服务治理的应用进行注册
3. 开启了健康检查能力后,我们还可以选择健康检查的协议
4. 点击确定后,我们就实现了通过服务治理方式注册应用与实例至 MSE Nacos 中
5. 根据下图配置,我们分别将 A 应用注册成 sc-A、B 应用注册成 sc-b、C 应用注册成 sc-c
6. 同时我们修改 Zuul 应用的 Nacos 地址配置,使其通过 SDK 方式注册至 MSE Nacos 中
7. 我们通过服务治理方式注册的服务,我们还可以通过服务治理方式将对应的节点从 MSE Nacos 中下线
8. 点击 MSE 服务治理中节点详情页面的服务下线,在不用重启应用 pod 的条件下,实现服务从注册中心中下线
到目前为止,我们完成了通过服务治理实现服务注册。
通过服务治理完成服务订阅
1. 我们在需要订阅 Nacos 服务的应用中增加如下 Env
2. 如何订阅对应的服务?
我们 Http 请求域名直接调用对应的服务即可,比如:
restTemplate.getForObject("http://sc-b:20002/spring_boot", String.class);
其中 sc-b 为服务名,默认的分组名可以通过 mse_nacos_group 指定,如果需要指定分组名可以调用 http://sc-b:20002/spring_boot?mse_nacos_group=xxx 即可。
3. 验证
a.通过 MSE Nacos 控制台可以验证,明确订阅关系
b.通过端到端请求验证
➜ ~ curl http://47.97.117.48/A/spring_boot A[10.0.3.238] -> B[10.0.3.229] -> C[10.0.3.241]%
无侵入实现基于SpringBoot应用的全链路灰度
到目前为止,我们默认就具备了符合如上场景的全链路灰度能力。
➜ ~ curl http://47.97.117.48/A/spring_boot -H "x-mse-tag: gray" Agray[10.0.3.240] -> B[10.0.3.229] -> Cgray[10.0.3.241]%
总结
使用 Spring Boot 应用一样可以快速享受到全链路灰度能力带来的发布体验。我们通过MSE 服务治理能力与Nacos引擎的整合,可以进一步简化与降低研发在云上需要关注的部分,应用的客户端可以再轻量化,进一步提升研发效率。