一、服务消费者-注册服务中心
测试结果
二、消费者通过Eureka访问提供者
测试结果
Consumer
ConsumerController
package com.william.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import java.util.List;
/**
* @author :lijunxuan
* @date :Created in 2019/6/29 9:54
* @description :
* @version: 1.0
*/
@RestController
@RequestMapping("/consumer")
public class ConsumerController {
@Resource
RestTemplate restTemplate;
@Resource
DiscoveryClient discoveryClient; //发现客户端对象
@RequestMapping("/findUser")
public String findUser(Integer id){
//请求服务提供者的查询用户详情地址
// String url="http://localhost:9091/user/findById?id="+id;alt+enter 找到format
String url= String.format("http://localhost:9091/user/findById?id=%d", id);
/*
* 动态获取服务注册中心的,服务提供者地址*/
/**
* 操作快捷键
* 找到privider_service-> application.yml-> user-service 先复制 然后按住crtl +e 回到这个位置
* discoveryClient.getInstances("user-service") ctrl +alt +v 和.var的效果相同
* List<ServiceInstance> instances = discoveryClient.getInstances("user-service");
*/
//获取注册中心的所有user-service用户注册实例
List<ServiceInstance> instances = discoveryClient.getInstances("user-service");
//获取第一个实例
ServiceInstance serviceInstance = instances.get(0);
int port = serviceInstance.getPort();
String host = serviceInstance.getHost();
url= String.format("http://%s:%d/user/findById?id=%d", host, port, id);
return restTemplate.getForObject(url,String.class);
}
}
测试断点
服务续约