一:背景介绍
生产部署了两台,做了负载,用了同一个nacos命名空间只更新了一台,导致请求到了没有更新的那一台所以出现404问题
二:实操
fegin调用
概念
fegin是一个声明式的http客户端,使用fegin只需要创建一个接口并使用对应注解,就能支持我们服务之间的调用
怎么做
1、首先准备一个使用了nacos的springCloud项目,为这个项目创建两个模块
这里我们将服务一方作为调用方,服务二作为被调用方
2、被调用方操作步骤
被调用方不需要额外增加任何操作,只要有对应的接口就可以了
3、调用方操作步骤
①引入依赖
<!--fengin调用--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>
②创建fegin调用的接口
③启动类上添加@EnableFeignClients注解
④需要的地方进行注入,然后进行使用
4、测试结果
部署多个服务
服务部署
我们把上文提到的serviceTwo服务部署两份,因为是在自己本地上进行的操作,所以需要使用端口号进行一个区分
这样我们就模拟出了,serverTwo服务,部署了两份,我们可以看一下nacos,现在serverTwo项目中有两个实例。这两个服务的默认权重都是1,也就是说如果我再次使用serverOne对serverTwo进行fegin调用,会访问一次9002端口,然后再访问9004端口
服务修改
我们将9004端口对应的服务内容进行一下更改,将serviceTwo/test 接口注释。模拟一下,两个服务不同,即是上文提到的一个服务更新了,另一个服务没有更新,调用到未更新的就会产生404问题
重启后测试
我们将9004端口对应的服务内容进行一下更改,将serviceTwo/test 接口注释。模拟一下,两个服务不同,即是上文提到的一个服务更新了,另一个服务没有更新,调用到未更新的就会产生404问题
三:总结
做事要有全局观