Spring Cloud Alibaba教程——Nacos微服务调用

教程仓库:github Spring-Cloud-Alibaba-Learning


教程索引页:index Spring-Cloud-Alibaba-Learning



源码地址

本篇内容的项目地址为:微服务调用

目标

  1. 可以根据服务名获取到该服务的节点列表
  2. 可以获取到在服务注册中心注册成功的所有服务名
  3. 完成跨服务的远程调用

准备工作

保证Nacos在启动状态,且确保两个服务(service-a和service-b)每次启动时都能成功注册到Nacos上


流程

一、根据服务名获取节点列表

我们在service-a中写一个控制器,在里面写一个接口,获取服务名为service-b的节点列表。

  1. 我们需要使用SpringCloud为我们提供的一个组件DiscoveryClient

        //由SpringCloud提供的组件,和Nacos解耦
        //也就是说 如果我们不使用Nacos而是其他的服务发现组件,依然可以使用DiscoveryClient
    	@Autowired
        private DiscoveryClient discoveryClient;
    
  2. 接下来写一个接口来获取服务名为service-b的节点实例

        /**
         * 测试服务发现
         * 获取服务名为service-b的所有服务节点实例
         * @return serviceInstanceList
         */    
    	@GetMapping("testInstances")
        public List<ServiceInstance> getInstances(){
         
             return discoveryClient.getInstances("service-b");
        }
    

接下来做三次测试

  1. 启动service-a,不启动service-b,测试接口testInstances,得到返回值如下:

    []
    
  2. 启动service-a,启动一个service-b实例,测试接口testInstances,得到返回值如下:

    [
      {
         
        "serviceId": "service-b",
        "host": "192.168.2.101",
        "port": 8182,
        "secure": false,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值