Sentinel做服务熔断与限流,服务能被监控,但是监控列表为空的问题思考

首先我觉得,服务和Sentinel不在同一台机器上面,本身是能够正常监控的,只要保证两台机器能够在一个内网中,能够互相连通即可

我在学习Sentinel的时候,我盲目使用云服务器的docker拉取Sentinel镜像,但是我开启了服务后,服务虽然能被Sentinel监控,但是监控列表为空

image-20210222131817300

当我用本机Windows下载Sentinel运行,监控列表又能正常显示

image-20210222131748478

我纠结了这个问题很久,网上也找到了很多的解决方案,他们无非是在配置文件中添加了一行client-ip又或是clientIp,跟上本机的ip

image-20210222131916231

  • clientIp:这个配置官方提示是sentinel的客户端为了连接Sentinel,需要告知Sentinel自己的IP

image-20210222131945824

  • client-ip:这个配置也是客户端的ip,官方提示是Sentinel需要定时向服务发送心跳检测,如果没有配置,将会被默认为localhost在本机上

image-20210222132228344

我都尝试配置了,但是都没有解决这个问题,我开始思考一个能说服自己的原因,我给出了我本机的IP,但是我这个IP真的能被我服务器中的Sentinel监测到吗?于是我尝试分别在本机和远程服务器ping这个IP,发现远程服务器根本ping不通本地,我又想,是不是阿里云内网限制了对外网ping?我又尝试ping百度,事实是可以的。

image-20210222132702356

image-20210222132733256

image-20210222132851423

于是我想到了,ipconfig查出来的IP应该是本机的内网地址,外网当然是无法ping通的,我连接的wifi,那么又试着在网站上查询自己的IP,发现并不一样

image-20210222140209668

无奈只能再百度了,搜了一下,点击查看搜索结果

image-20210222140209668

那就是没有吧,Sentinel可能是因为这个原因监控不到我的服务,这也就出现了我的服务能够找到Sentinel,从而被Sentinel所记录,但是Sentinel却找不到我的服务,导致监控列表是空的,如果有机会我找个具有公网IP的环境再来测试一下,还有一种方法就是做内网穿透,不搞了,已经不想因为这个问题再纠结了,反正我跑本机上没问题,不用云服务器就是。

网络知识欠缺,文章内容如有错误,希望大家指点,不胜感激

猜你喜欢

转载自blog.csdn.net/qq_43509535/article/details/113936618
今日推荐