- 一、前提
- 二、代码编写
- 2.1 编写业务类
- 2.2 启动类的修改
- 2.3 测试
- 子模块的pom导入了 pring-cloud-starter-netflix-eureka-client 依赖
- 子模块的yml文件:端口号、微服务名称、并把自己注册到eureka里面
@RestController
@RequestMapping("/payment")
public class PaymentController {
// import org.springframework.cloud.client.discovery.DiscoveryClient; 包不要导错
@Resource
private DiscoveryClient discoveryClient;
@GetMapping(value = "/discovery")
public Object discovery(){
List services = discoveryClient.getServices();
for (String service : services) {
log.info("********service:{}",service);
}
List instances = discoveryClient.getInstances("CLOUD-PAYMENT-SERVICE");
for (ServiceInstance instance : instances) {
log.info(instance.getServiceId() + "t" + instance.getHost() + "t" + instance.getPort() + "t" + instance.getUri());
}
return this.discoveryClient;
}
}
2.2 启动类的修改
@SpringBootApplication
@EnableEurekaClient
@EnableDiscoveryClient
public class PaymentMain8001 {
public static void main(String[] args) {
SpringApplication.run(PaymentMain8001.class, args);
}
}
@EnableDiscoveryClient 及@EnableEurekaClient的区别
- 共同点就是:能够让注册中心扫描到该服务; 都用在启动类上
- 不同点:@EnableEurekaClient只适用于Eureka作为注册中心,@EnableDiscoveryClient 可以是其他注册中心。
ps : 我就没有通过消费方调用了,直接本机调用。
日志信息与Eureka的对比:



