美文网首页
22. Spring Cloud Alibaba之服务容错组件

22. Spring Cloud Alibaba之服务容错组件

作者: Zal哥哥 | 来源:发表于2020-10-03 12:27 被阅读0次

    Sentinel与控制台通信原理

    我们学习了如何为项目整合Sentinel,并搭建了Sentinel的可视化控制台,介绍及演示了各种Sentinel所支持的规则配置方式。本文则对Sentinel进行更进一步的介绍。

    首先我们来了解控制台是如何获取到微服务的监控信息的:

    微服务集成Sentinel需要添加spring-cloud-starter-alibaba-sentinel依赖,该依赖中包含了sentinel-transport-simple-http模块。集成了该模块后,微服务就会通过配置文件中所配置的连接地址,将自身注册到Sentinel控制台上,并通过心跳机制告知存活状态,由此可知Sentinel是实现了一套服务发现机制的。

    image

    通过该机制,从Sentinel控制台的机器列表中就可以查看到Sentinel客户端(即微服务)的通信地址及端口号:

    image

    如此一来,Sentinel控制台就可以实现与微服务通信了,当需要获取微服务的监控信息时,Sentinel控制台会定时调用微服务所暴露出来的监控API,这样就可以实现实时获取微服务的监控信息。

    另外一个问题就是使用控制台配置规则时,控制台是如何将规则发送到各个微服务的呢?同理,想要将配置的规则推送给微服务,只需要调用微服务上接收推送规则的API即可。

    我们可以通过访问http://{微服务注册的ip地址}:8720/api接口查看微服务暴露给Sentinel控制台调用的API,如下:

    image

    相关源码:

    注册/心跳机制:com.alibaba.csp.sentinel.transport.heartbeat.SimpleHttpHeartbeatSender
    通信API:com.alibaba.csp.sentinel.command.CommandHandler的实现类

    链接:https://www.jianshu.com/p/7c7251e9ba0d

    相关文章

      网友评论

          本文标题:22. Spring Cloud Alibaba之服务容错组件

          本文链接:https://www.haomeiwen.com/subject/qpvrektx.html