对于注册进eureka里面的微服务,可以通过服务发现来获得该服务的信息
- 修改cloud-provider-payment8001的Controller
@RestController
@Slf4j
public class PaymentController {
@Resource
private PaymentService paymentService;
@Value("${server.port}")
private String serverPort;
@Resource
private DiscoveryClient discoveryClient;
@PostMapping("/payment/create")
public CommonResult create(@RequestBody Payment payment){
int result = paymentService.create(payment);
log.info("========>插入结果:"+result);
if (result > 0){
return new CommonResult(200,"插入成功,serverPort:"+serverPort, result);
}else {
return new CommonResult(444,"插入数据库失败",null);
}
}
@GetMapping("/payment/get/{id}")
public CommonResult getPaymentById(@PathVariable("id") Long id){
Payment payment = paymentService.getPaymentById(id);
log.info("========>查询结果:"+payment+"wewewefdsfsddfsfs");
if (payment != null){
return new CommonResult(200,"查询成功,serverPort:"+serverPort, payment);
}else {
return new CommonResult(444,"无记录,查询"+id,null);
}
}
@GetMapping(value = "/payment/discovery")
public Object discovery(){
List<String> services = discoveryClient.getServices();
for (String element : services){
log.info("======>element:" + element);
}
List<ServiceInstance> 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;
}
}
- 8001主启动类
@EnableEurekaClient
@EnableDiscoveryClient
@SpringBootApplication
public class PaymentMain8001 {
public static void main(String[] args) {
SpringApplication.run(PaymentMain8001.class,args);
}
}
- 测试