проблема:
使用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.cn/post/6844904072148058119 基本一样。
区别就是配置文件中。
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-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
启动类添加@EnableFeignClients启动Feign
编写测试接口
访问http://localhost:9871/test1 查看是否生效。