Nacos整合到SpringCloud中

上一篇 << 下一篇 >>>Eureca作为注册中心配置实例


Nacos是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台,Nacos Config Starter实现Spring Cloud应用程序的外部化配置。

1.引入依赖包


    
    
        org.springframework.boot
        spring-boot-starter-web
    
    
        org.springframework.cloud
        spring-cloud-starter-alibaba-nacos-discovery
        0.2.2.RELEASE
    

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 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.集群环境下还可以下线上线操作


推荐阅读:
<<<服务注册、服务发现和服务治理
<<<服务治理的方式和原理
<< << << << << <<<@EnableDiscoveryClient与@EnableEurekaClient区别
<< <<

你可能感兴趣的:(Nacos整合到SpringCloud中)