本文主要是介绍微服务-注册中心-nacos-发现-Feign,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
问题:
使用nacos作为注册中心
复制代码
原理:
获取nacos里的服务实例信息
通过拼接数据等方式,访问对应的提供者服务。
复制代码
文档:
nacos官方文档: https://nacos.io/zh-cn/docs/quick-start.html
关于Springboot,SpringCloud,SpringCloudAlibaba对应的版本关系地址:
https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E
复制代码
步骤
1.下载nacos并启动
2.创建SpringBoot项目并添加依赖(2个依赖,SpringCloud和nacos)
3.设置nacos地址和启动注解
4.启动项目并查看是否成功注册
5.编写测试
6.使用Feign
复制代码
前四步
前4步与 https://juejin.im/post/5e54d406518825495853c1ff 基本一样。
区别就是配置文件中。
spring.application.name=nacos-consume
server.port=9871
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
项目名称与端口不一样。
复制代码
5.编写测试
通过负载均衡,提供者服务名称。得到注册中心的数据。
手动拼接URl,然后通过Https访问测试的接口,查看是否成功。
复制代码
@Autowired
LoadBalancerClient loadBalancerClient;
/**
* 方式1, 手动拼接
*
* @return
*/
@GetMapping("/test")
public String test() {
// 通过spring cloud common中的负载均衡接口选取服务提供节点实现接口调用
ServiceInstance serviceInstance = loadBalancerClient.choose("nacos-provider");
String url = serviceInstance.getUri() + "/hello?name=" + "第一种方式";
RestTemplate restTemplate = new RestTemplate();
String result = restTemplate.getForObject(url, String.class);
return "Invoke : " + url + ", return : " + result;
}
复制代码
启动两个项目后
复制代码
访问http://localhost:9871/test 查看是否生效。
复制代码
6.使用Feign
原理和上面一样。
只不过是Feign封装了一成,看上去更加友好。
复制代码
消费者项目的配置文件中引用Feign
<!--Feign-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
启动类添加@EnableFeignClients启动Feign
复制代码
编写测试接口
复制代码
访问http://localhost:9871/test1 查看是否生效。
复制代码
这篇关于微服务-注册中心-nacos-发现-Feign的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!