springcloud微服务(九)-服务发现Discovery

Discovery功能:

对于注册进Eureka里面的微服务,可以通过服务发现来获取服务的信息。此处以payment8001为例。payment8002与payment8001一样。

1. 修改cloud-prodvider-payment8001的controller。

@RestController
@Slf4j
public class PaymentController {

    @Autowired
    private PaymentServices paymentServices;

    @Value("${server.port}")
    private String serverPort;

    @Autowired
    private DiscoveryClient discoveryClient;//服务发现,就是展示服务的一些信息

    @GetMapping("/payment/get/{id}")
    public CommonResult<Payment> getPaymentById(@PathVariable("id") Long id)
    {
         Payment payment=paymentServices.getPaymentById(id);
         log.info("********查询结果*********:"+payment);
         if(payment != null)
         {
             return new CommonResult<>(200,"查询数据成功,serverport:"+serverPort,payment);
         }else
         {
             return new CommonResult<>(444,"查询到对应的记录,查询ID:"+id);
         }

    }
    @PostMapping("/payment/create")
    public CommonResult addPayment(@RequestBody Payment payment)
    {

       int result = paymentServices.addPayment(payment);
       log.info("******插入结果:"+result);
       if(result>0)
       {
           return new CommonResult(200,"插入成功");
       }else
       {
           return new CommonResult(445,"插入失败");
       }
    }

    @GetMapping("/payment/discovery")
    public Object getDiscovery()
    {
        List<String> services= discoveryClient.getServices();
        for (String service:services) {
            log.info("******service:"+service);
        }

        List<ServiceInstance> instances= discoveryClient.getInstances("cloud-payment-service");
        for (ServiceInstance instance:instances) {
            log.info(instance.getHost()+"\t"+instance.getInstanceId()+"\t"+instance.getPort()+"\t"+instance.getServiceId());
        }
        return this.discoveryClient;
    }
}

2. 主启动类修改,需增加服务发现注解

@SpringBootApplication
//@EnableEurekaClient
@EnableDiscoveryClient
public class PaymentMain8001 {
    public static void main(String[] args)
    {
        SpringApplication.run(PaymentMain8001.class,args);
    }
}

2.1 请注意我把Eureka服务发现的注解替换成了注解@EnableDiscoveryClient

@EnableDiscoveryClient和@EnableEurekaClient共同点就是:都是能够让注册中心能够发现,扫描到该服务。

不同点:@EnableEurekaClient只适用于Eureka作为注册中心,@EnableDiscoveryClient 可以是适用于Eureka作为注册中心,也适用于其他注册中心(例如Zookeeper、Consul等)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值