对于注册进Eureka里的微服务,可以通过服务发现来获得该服务的信息
以下代码以payment8001模块为例
- 修改COntroller
通过调用DiscoveryClient的getServices方法,从注册中心获取服务列表
通过调用DiscoveryClient的getInstances方法,从注册中心获取服务实例集
@Slf4j
@RestController
@RequestMapping(value = "/Payment")
public class PaymentController {
@Resource
private DiscoveryClient discoveryClient;
@GetMapping("/discovery")
public Object discovery() {
List<String> services = discoveryClient.getServices();
for (String element : services) {
System.out.println("****element:" + element);
}
List<ServiceInstance> instances = discoveryClient.getInstances("PAYMENT-PROVIDER-SERVICE");
for (ServiceInstance instance : instances) {
System.out.println(instance.getServiceId() + "\t"
+ instance.getHost() + "\t"
+ instance.getPort() + "\t"
+ instance.getUri());
}
return discoveryClient;
}
}
- 修改启动Main
添加@EnableDiscoveryClient注解
启动服务发现
@SpringBootApplication
@EnableEurekaClient
//启动服务发现
@EnableDiscoveryClient
public class PaymentMain8001 {
public static void main(String[] args) {
SpringApplication.run(PaymentMain8001.class, args);
System.out.println("PaymentMain8001 已启动");
}
}
- 访问测试
可以看到我们可以自行去获取Eureka里的微服务注册信息