服务健康与否18

54 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第18天,点击查看活动详情

nginx升级

  • 之前我们是nginx 服务进行负载均衡,总体使用没问题,但是也没啥亮点。毕竟不是我们的JAVA语言控制的。zuul 确实一个框架,我们可以整合到我们系统中,然后进行代码级别的开发。这样我们可以实现更加细颗粒度的功能控制开发。

灰度扩展

  • 我们的灰度升级可以有很多汇总方式,比如我们可以选择分布式插件服务注册器,让服务组册帮我们解决路由真实服务的选择,比如eureka , zk , nacos 等这些插件都收可以是心啊的。

  • 但是我们在平时应该遇到过有些软件对不同地区进行不同对待。

    • 比如说移动公司主页针对的活动就是区分地市的
    • 比如说掘金的主页就是区分内侧的
  • 上述都统称为灰度发布,原理也很简单实际上就是有多个实例,zuul根据请求的特征转发到不同的实例上。不同城市就是根据地区来路由,邀请内侧就是通过个人用户信息来路由。他们的实现都离不开我们上面描述的Ribbon.Predicate 。想要对灰度发布进行扩展我们就离不开Predicate

  • 在开发中我们还可以通过ribbon 帮我摁门实现选择服务的调用,我使用最多的是 openfeign 这个开源工具,但是设计一个问题就是权限问题,所以我们需要拦截请求,将我们的token填充到请求中,保证我们模块之间的调用能够通过权限严正,保证不被拒绝掉。

服务健康监测

  • 既然是集群我们就需要监测服务,我们可以使用spring bo o t提供的admin模块进行监测,正常注册服务的容器都是提供了服务健康状态查询的,他们也会定期的保持和服务通信确保他们是否还正常工作。

总结

  • zuul是netflix开源项目,实现动态路由、认证授权、动态过滤器、灰度发布