案例分析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. 服务及其元数据管理

相关内容

热门资讯

高光不断!平顶山美食、美景、美... 最近 平顶山高光不断 美食、美景、美物 连连被央媒关注 一起来看看 刚刚过去的端午节 平顶山鲁山特色...
从鲜叶到潮饮:网络博主沉浸式探... 6月14日至17日,“寻香茶源”网络博主茶山行主题活动在云南省西双版纳傣族自治州勐海县举行。6位来自...
百吃不厌的5道家常排骨做法!入... 排骨是中式家常菜里的万能硬菜,不管日常三餐、家庭聚餐还是过节待客,都稳居餐桌C位。肉质嫩、油脂适中、...