如果多个微服务都注册到同一个 Eureka Server 中心,则任何一个微服务都可以看到自身和其他微服务的注册信息。
<br/>
目前我在注册中心 eureka7001 注册了三个微服务,通过下面的代码可以获取所有已注册的微服务信息。
<br/>
**1. 在微服务启动类上标记注解`@EnableDiscoveryClient`开启服务发现**
```java
@EnableDiscoveryClient
@SpringBootApplication
public class Payment8001Application {
public static void main(String[] args) {
SpringApplication.run(Payment8001Application.class, args);
}
}
```
**2. 获取所有已注册微服务基本信息**
```java
@RestController
public class MicServerDetailController {
@Autowired
private EurekaClient discoveryClient;
@GetMapping("/micDetail")
public void micDetail() {
discoveryClient.getApplications().getRegisteredApplications().stream().forEach(app -> {
System.out.println("[微服务名称]: " + app.getName());
app.getInstances().stream().forEach(ins -> {
System.out.println("\n[微服务实例id]: " + ins.getInstanceId());
System.out.println("[addr]: " + ins.getIPAddr() + ":" + ins.getPort());
});
});
}
}
```
```
[微服务名称]: ASSEMB-SERVER-PAYMENT
[微服务实例id]: assemb-server-payment8003
[addr]: 192.168.1.12:8003
[微服务实例id]: assemb-server-payment8002
[addr]: 192.168.1.12:8002
[微服务实例id]: assemb-server-payment8001
[addr]: 192.168.1.12:8001
```