关于sentinel没有监控数据的问题

今天,继续给大家去排雷,这个雷有点奇妙,因为有的人会遇到,有的人遇不到。此话怎讲?这个雷就是标题所述的问题,这分两种情况,如果client端和server端在同一服务器上部署,或者client端ip能在公网上访问的话,这个问题就不会出现这个问题。反之,就会出现这个问题,接下来我们详细说说解决的方法。

首先,我们演示一个例子,就是使用阿里云搭建好server服务,然后在我们client端项目代码中加入相应的配置,如下:(项目代码只展示部分)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#1.1.1.1 指的服务器是公网IP
server:
port: 8010
spring:
application:
name: com.lrkj.circuit-dev
cloud:
nacos:
discovery:
server-addr: 1.1.1.1:8848
username: nacos
password: xxxxx #处理过的
namespace: aasdb89f-4ei6-4bf7-887d-7335ae7be282 #处理过的
group: lrkj-lry
config:
namespace: aasdb89f-4ei6-4bf7-887d-7335ae7be282 #处理过的
server-addr: 1.1.1.1:8848
group: lrkj-lry
file-extension: yaml
alibaba:
seata:
tx-service-group: guangzhou
sentinel:
transport:
dashboard: 1.1.1.1:8858

好了,当我们把client端配置好以后,在浏览器访问Dashboard控制台,会发生如下问题:
sentinel1
咦,怎么什么都没有,明明我们client端的配置文件没有写错,然后我们便会上网查到底发生了什么问题,结果最多的是,由于client端和server端不在统一服务器上,导致client端无法注册到server端当中。
⭐第一种解决方法很简单,只需要client端和server端部署到同一个服务器上就可以了,解决结果如下:
sentinel2

⭐第二种解决方案,就是在我们client端的配置文件中加入client端的ip地址进行配置,加多一行即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#1.1.1.1 指的是服务器公网IP
#2.2.2.2 指的是本地公网IP
server:
port: 8010
spring:
application:
name: com.lrkj.circuit-dev
cloud:
nacos:
discovery:
server-addr: 1.1.1.1:8848
username: nacos
password: xxxxx #处理过的
namespace: aasdb89f-4ei6-4bf7-887d-7335ae7be282 #处理过的
group: lrkj-lry
config:
namespace: aasdb89f-4ei6-4bf7-887d-7335ae7be282 #处理过的
server-addr: 1.1.1.1:8848
group: lrkj-lry
file-extension: yaml
alibaba:
seata:
tx-service-group: guangzhou
sentinel:
transport:
dashboard: 1.1.1.1:8858
client-ip: 2.2.2.2:8010

问题解决。
但是,这就引发一个问题。当我们的IP是DHCP动态代理的时候,那么IP怎么填?上一篇文章我们说到可以使用ngrok把本地的IP映射出去,那么client-ip的值填ngrok映射出来的地址行不行呢?我们来试一下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#1.1.1.1 指的是服务器公网IP
server:
port: 8010
spring:
application:
name: com.lrkj.circuit-dev
cloud:
nacos:
discovery:
server-addr: 1.1.1.1:8848
username: nacos
password: xxxxx #处理过的
namespace: aasdb89f-4ei6-4bf7-887d-7335ae7be282 #处理过的
group: lrkj-lry
config:
namespace: aasdb89f-4ei6-4bf7-887d-7335ae7be282 #处理过的
server-addr: 1.1.1.1:8848
group: lrkj-lry
file-extension: yaml
alibaba:
seata:
tx-service-group: guangzhou
sentinel:
transport:
dashboard: 1.1.1.1:8858
client-ip: 5a38-121-9-199-75.jp.ngrok.io

很遗憾这个方法不行,到底是为什么呢?知道的小伙伴可以评论告诉我哦!感谢!
今天就分享到这里,我们下一篇博文见!