由于公司最近在调研微服务的转型方案,所以关注了一下SpringCloudAlibaba的框架,在研究Sentinel的实现方法时有几点疑惑:
- 对于8719端口和服务之间的交互,配置文件
Transport
中对port描述的是是:“Sentinel api port,default value is 8719”;clientIp的描述是:”Get heartbeat local ip. If the client ip not configured, it will be address of local host“。是不是可以理解为:sentinel默认是和服务部署在一起的;如果sentinel单独部署的话,要想监控服务的状态就需要配置client ip为服务所在的ip; - 如果上述描述正确的话,那对于服务是集群状态,是不是每个服务都需要部署sentinel?如果部署采用的是动态扩容的方式,每个服务的机子ip都是会变动的,这个时候clientIP是不是需要侵入式地动态配置了?另外,在《在生产环境中使用 Sentinel》中虽然提供了push规则配置的方法,但是对于push的内容获取没有更多的解释(或者有的话麻烦提供一下,是本人的信息获取渠道狭窄了)
- 如果上述描述错误的话,烦请大佬指点一下对于集群环境下,采用nacos作为discovery的各个服务是如何被sentinel监控的,多谢🙏
2条答案
按热度按时间e7arh2l61#
微服务依赖 sentinel core就好了,dashbord部署一份
tyg4sfes2#
@WWWWWWWXQ 1.应该只能跟微服务部署在一起吧,单独部署的话,sentinel如何对流量进行拦截统计限流,集群流控下的token server倒是可以单独部署。
2.动态扩容,官方文档有说client IP是可以自增分配的,只是这样速度会慢些,所以才最好手动自行配置;push的内容获取,应该可以参考下RedisDataSource.class、NacosDataSource.class,不同的数据源读写不一样。