Nacos整合到SpringCloud中
2021-10-22 本文已影响0人
迦叶_金色的人生_荣耀而又辉煌
上一篇 <<<Nacos的服务手动注册与发现
下一篇 >>>Eureca作为注册中心配置实例
Nacos是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台,Nacos Config Starter实现Spring Cloud应用程序的外部化配置。
1.引入依赖包
<dependencies>
<!-- springboot 整合web组件-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>0.2.2.RELEASE</version>
</dependency>
</dependencies>
2.配置
server:
port: 8089
spring:
cloud:
nacos:
discovery:
server-addr: 10.211.55.16:8848
application:
name: member-service
3.生产者代码
@RestController
public class MemberService {
@Value("${server.port}")
private String serverPort;
@RequestMapping("/test")
public String test(Long userId){
return "请求端口:"+serverPort+" ID:"+userId;
}
}
4.消费者代码
@RestController
public class OrderService {
@Autowired
private RestTemplate restTemplate;
@Autowired
private DiscoveryClient discoveryClient;
@Autowired
private LoadBalancer loadBalancer;
/**
* 订单调用会员服务
*/
@RequestMapping("/orderToMember")
public String orderToMember() {
/**名字要对应到生产者的服务名字*/
List<ServiceInstance> serviceInstanceList = discoveryClient.getInstances("member-service");
/**负载均衡器是自己写的,目的是获取其中一个地址*/
ServiceInstance serviceInstance = loadBalancer.getSingleAddres(serviceInstanceList);
URI rpcMemberUrl = serviceInstance.getUri();
/**RestTemplate不是SpringCloud写的,是Spring内部的,它本身支持http协议调用。*/
String result = restTemplate.getForObject(rpcMemberUrl + "/test", String.class);
return "订单调用会员获取结果:" + result;
}
}
5.集群环境下还可以下线上线操作
推荐阅读:
<<<服务注册、服务发现和服务治理
<<<服务治理的方式和原理
<<<Nacos的服务手动注册与发现
<<<Eureca作为注册中心配置实例
<<<Eureka的自我保护机制
<<<Consule作为注册中心配置实例
<<<Zookeeper作为注册中心配置实例
<<<@EnableDiscoveryClient与@EnableEurekaClient区别
<<<Nacos单机环境安装
<<<Nacos集群环境安装