继续更新中,欢迎点赞关注!
一、服务发现简介
各个微服务在启动时,将自己的网络地址等信息注册到服务发现组件上(eureka,zookeeper,Consul),服务发现组件会存储
二、服务发现的代码实例
我们需要在cloud-provide-payment提供者服务中的Controller中修改,如下图:
//注入服务发现的注解 @Autowired private DiscoveryClient discoveryClient; //获取服务信息 GetMapping("/payment/discovery") public Object discovery(){ List<String> services = discoveryClient.getServices(); for (String s : services){ log.info("********注册到eureka中的服务中有:"+services); } List <ServiceInstance> instances = discoveryClient.getInstances("MCROSERVICE-PAYMENT"); for (ServiceInstance s: instances) { log.info("当前服务的实例有"+s.getServiceId()+"\t"+s.getHost()+"\t"+s.getPort()+"\t"+s.getUri()); } return this.discoveryClient; }
在启动类上加上注解@EnableDiscoveryClient,如下图:
@SpringBootApplication @EnableEurekaClient @EnableDiscoveryClient public class PayMentMain { public static void main(String[] args) { SpringApplication.run(PayMentMain.class,args); } }
然后启动该服务,访问http://localhost:8001/payment/discovery
获取当前注册中心的服务信息,如下图:
可以看到客户端和服务端都有如下两个服务:mcroservice-order和mcroservice-payment
我们将信息通过日志打印到了控制台上,现在看一下控制台打印的信息,如下图:
我们可以看到当前注册中心有mcroservice-order和mcroservice-payment这两个服务。还可以看到mcroservice-payment服务下的实例的ip和端口还有uri。这个可以获取很多的服务信息。大家可以自己看一下,根据自己的需要获取。如下图:
是不是so easy?
下一篇文章学习Consul的服务注册与发现,持续关注、点赞。我们持续更新中。