Nacos整合到SpringCloud中

作者: 迦叶_金色的人生_荣耀而又辉煌 | 来源:发表于2021-10-22 07:20 被阅读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集群环境安装

    相关文章

      网友评论

        本文标题:Nacos整合到SpringCloud中

        本文链接:https://www.haomeiwen.com/subject/pbfeoltx.html