首先我觉得,服务和
Sentinel
不在同一台机器上面,本身是能够正常监控的,只要保证两台机器能够在一个内网中,能够互相连通即可
我在学习
Sentinel
的时候,我盲目使用云服务器的docker
拉取Sentinel
镜像,但是我开启了服务后,服务虽然能被Sentinel
监控,但是监控列表为空
当我用本机
Windows
下载Sentinel
运行,监控列表又能正常显示
我纠结了这个问题很久,网上也找到了很多的解决方案,他们无非是在配置文件中添加了一行
client-ip
又或是clientIp
,跟上本机的ip
- clientIp:这个配置官方提示是
sentinel
的客户端为了连接Sentinel
,需要告知Sentinel
自己的IP
- client-ip:这个配置也是客户端的
ip
,官方提示是Sentinel
需要定时向服务发送心跳检测,如果没有配置,将会被默认为localhost
在本机上
我都尝试配置了,但是都没有解决这个问题,我开始思考一个能说服自己的原因,我给出了我本机的
IP
,但是我这个IP
真的能被我服务器中的Sentinel
监测到吗?于是我尝试分别在本机和远程服务器ping
这个IP
,发现远程服务器根本ping
不通本地,我又想,是不是阿里云内网限制了对外网ping
?我又尝试ping
百度,事实是可以的。
于是我想到了,
ipconfig
查出来的IP
应该是本机的内网地址,外网当然是无法ping
通的,我连接的wifi
,那么又试着在网站上查询自己的IP
,发现并不一样
无奈只能再百度了,搜了一下,点击查看搜索结果
那就是没有吧,
Sentinel
可能是因为这个原因监控不到我的服务,这也就出现了我的服务能够找到Sentinel
,从而被Sentinel
所记录,但是Sentinel
却找不到我的服务,导致监控列表是空的,如果有机会我找个具有公网IP
的环境再来测试一下,还有一种方法就是做内网穿透,不搞了,已经不想因为这个问题再纠结了,反正我跑本机上没问题,不用云服务器就是。
网络知识欠缺,文章内容如有错误,希望大家指点,不胜感激