RxJavaJava编程语言爱好者

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集群环境安装

上一篇下一篇

猜你喜欢

热点阅读