(1)SpringCloudAlibaba 主要功能 与 实现组件
(2)开发中常使用的技术搭配
情景再现:
S1:
S2:填坑记录二: 【nacos.log 错误日志为:(如下两句语句循环出现)】 java.lang.IllegalStateException: can not find peer: 172.22.0.3:8848 java.lang.IllegalStateException: can not find peer: 172.22.0.5:8848 【naming-raft.log 错误日志为:】 ERROR NACOS-RAFT vote failed: 500, url: http://120.26.184.41:8850/nacos/v1/ns/raft/vote ERROR NACOS-RAFT vote failed: 500, url: http://120.26.184.41:8851/nacos/v1/ns/raft/vote WARN [IS LEADER] no leader is available now! 【分析:】 通过 nacos.log 的 ip 地址,可以猜测当前 nacos 读取到的是内网 IP。 而集群列表中不存在这个 IP,所以无法连接到其余 节点(无法通信),进而选举失败。 【解决:】 既然获取不到 IP 地址,那就手动输入 IP 地址。 在环境变量中,通过 NACOS_SERVER_IP 指定当前主机的 IP 即可。 比如: - NACOS_SERVER_IP=120.26.184.41
S3:填坑记录三 【查看 naming-raft.log 日志如下:】 2021-03-25 17:45:09,770 INFO received approve from peer: {"ip":"120.26.184.41:8848","voteFor":"120.26.184.41:8848","term":9,"leaderDueMs":18440,"heartbeatDueMs":2000,"state":"FOLLOWER"} 2021-03-25 17:45:09,772 INFO received approve from peer: {"ip":"120.26.184.41:8848","voteFor":"120.26.184.41:8848","term":9,"leaderDueMs":18531,"heartbeatDueMs":5000,"state":"CANDIDATE"} 2021-03-25 17:45:09,788 INFO received approve from peer: {"ip":"120.26.184.41:8848","voteFor":"120.26.184.41:8848","term":9,"leaderDueMs":18671,"heartbeatDueMs":5000,"state":"FOLLOWER"} 2021-03-25 17:45:15,001 WARN [IS LEADER] no leader is available now! 2021-03-25 17:45:28,123 INFO vote 120.26.184.41:8848 as leader, term: 10 【分析:】 通过日志可以看到貌似 120.26.184.41:8848 这个东西被选为了 LEADER, 而实际上 我开放的是 8849、8850、8851 三个端口,但是这三个端口并没有被访问。 【解决:】 默认端口号为 8848。既然获取不到端口,那就手动设置端口。 在环境变量中,通过 NACOS_APPLICATION_PORT 指定当前主机需要访问的端口即可。 修改 NACOS_APPLICATION_PORT 后,端口映射 ports 也需要修改。 比如: environment: - NACOS_APPLICATION_PORT=8851 ports: - 8851:8851
(4)连接 Nacos 集群 【比如:】 spring: cloud: nacos: discovery: server-addr: 120.26.184.41:8849,120.26.184.41:8850,120.26.184.41:8851 config: server-addr: 120.26.184.41:8849,120.26.184.41:8850,120.26.184.41:8851 【bootstrap.yml】 server: port: 7100 spring: application: name: nacos-client-config cloud: nacos: discovery: # 配置 nacos server 地址(作为注册中心) # server-addr: 120.26.184.41:8848 server-addr: 120.26.184.41:8849,120.26.184.41:8850,120.26.184.41:8851 config: # 配置 nacos server 地址(作为配置中心) # server-addr: 120.26.184.41:8848 server-addr: 120.26.184.41:8849,120.26.184.41:8850,120.26.184.41:8851 # 设置配置文件前缀,默认为 ${spring.application.name} prefix: ${spring.application.name} # 设置配置文件后缀名 file-extension: yml shared-configs[0]: data-id: test-0-dev.yml shared-configs[1]: data-id: test-1-dev.yml shared-configs[2]: data-id: test-2-dev.yml group: DEFAULT_GROUP refresh: true
|
|