案例分析003 fegin调用404
创始人
2024-06-03 17:21:52

背景介绍:

Nacos在springcloud项目中发挥着注册中心和配置中心的作用,作为配置中心将配置从应用中抽离出来,交给nacos统一的来管理配置,可以配置多套环境,发生改变各个微服务各自到nacos配置中心拉取相关配置,实现配置中心化避免频繁修改配置文件;作为注册中心实现服务调用者对服务提供者远程调用,项目中出现了两台使用同一个命名空间的nacos只更新了一台,导致请求到了没更新的那一台导致了404问题的出现。

问题复盘:

接下来借用一个例子来模拟fegin调用404的情况。

项目中是3台nacos的集群,此处搭建两个不同端口号的nacos模拟集群,端口号分别为8848和8850,配置nacos集群的持久化配置:搭建mysql虚拟机,navacat连接,执行nacos的cof目录下的nacos-mysql.sql文件:

修改nacos的conf目录下的 application.properties,并指定数据源配置。

启动8848和8850

新建命名空间:

准备相同的两个实例命名为,test1和test2,配置分别如下

test01

server:port: 9023spring:application:name: consumercloud:nacos:discovery:server-addr: 192.168.25.151:8848,192.168.25.151:8850namespace: kongjian1config:server-addr: 192.168.25.151:8848,192.168.25.151:8850namespace: kongjian1

server:port: 9009spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://192.168.25.146:3306/nacos_config?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTCusername: rootpassword: rootapplication:name: providercloud:nacos:discovery:server-addr: 192.168.25.151:8848,192.168.25.151:8850namespace: kongjian1config:server-addr: 192.168.25.151:8848,192.168.25.151:8850namespace: kongjian1

test02

server:port: 9024spring:application:name: consumercloud:nacos:discovery:server-addr: 192.168.25.151:8848,192.168.25.151:8850namespace: kongjian1config:server-addr: 192.168.25.151:8848,192.168.25.151:8850namespace: kongjian1

server:port: 9010spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://192.168.25.146:3306/nacos_config?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTCusername: rootpassword: rootapplication:name: providercloud:nacos:discovery:server-addr: 192.168.25.151:8848,192.168.25.151:8850namespace: kongjian1config:server-addr: 192.168.25.151:8848,192.168.25.151:8850namespace: kongjian1

启动项目服务注册成功

接下来修改test02的@GetMapping注解,重启并注册到nacos

@RestController
@RequestMapping("/provider")
public class UserController {@GetMapping("/post")public String findAll() {return "调用成功";}}

这里采用的负载均衡策略是默认的权重为1:

消费者调用生产者的方法,当consumer调用到test02注册到nacos的方法时就会出现404的情况。

总结:

nacos主要功能:

  1. 服务发现和服务健康监测:对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求。

  1. 动态配置服务:配置中心化,配置变更时不需要重新部署应用和服务

  1. 动态DNS服务

  1. 服务及其元数据管理

相关内容

热门资讯

山水皆有情!丽江两山一江的千年... 去过丽江、走过虎跳峡的人,大概率都听过哈巴雪山和金沙江的传说。很多人站在峡谷之下,望着奔腾不息的金沙...
活力中国调研行丨“殷”你而来 ... 9月12日,游客在殷墟博物馆“甲骨文展厅”内参观。位于河南省安阳市的殷墟博物馆新馆是首个全景式展现商...
浦江之夜赴美好相逢,第37届上... 9月12日晚,黄浦江畔灯火璀璨,第37届上海旅游节大巡游在外滩中山东一路上演。不少观众早早便来到外滩...
美丽中国丨秋韵紫鹊界 梯田入画... 这是9月11日拍摄的紫鹊界梯田(无人机照片)。 金秋九月,湖南省娄底市新化县紫鹊界梯田稻谷渐次成熟。...
中国之巅奏响《共同的节日》,千... 千吨阻尼器,“迎世赛、游上海旅游节”。9月13日,由上海市文化和旅游局指导推出上海旅游·会客│巅峰之...