一、服务消费者-注册服务中心
测试结果
二、消费者通过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 {@ResourceRestTemplate restTemplate;@ResourceDiscoveryClient discoveryClient; //发现客户端对象@RequestMapping("/findUser")public String findUser(Integer id){//请求服务提供者的查询用户详情地址// String url="http://localhost:9091/user/findById?id="+id;alt+enter 找到formatString 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);}}
测试断点
服务续约