主要修改zk order的代码:
package com.toov5.api.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.discovery.DiscoveryClient; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.context.annotation.Bean; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; @RestController @SpringBootApplication @EnableDiscoveryClient //如果服务使用consul或者zk使用这个注解 向注册中心注册服务 public class zkOrderApiControllerRibbon { @Value("${server.port}") private String serverPort; @Autowired private RestTemplate restTemplate; @Autowired private DiscoveryClient discoveryClient; @RequestMapping("/orderToMember") public String orderToMember() { String url ="http://zk-member/getMember"; return restTemplate.getForObject(url, String.class); } @RequestMapping("/discoveryMember") public List<ServiceInstance> discoveryMember() { List<ServiceInstance> instances = discoveryClient.getInstances("zk-member"); for (ServiceInstance serviceInstance : instances) { System.out.println("url"+serviceInstance.getUri()); } return instances; } public static void main(String[] args) { SpringApplication.run(zkOrderApiControllerRibbon.class, args); } @Bean @LoadBalanced RestTemplate restTemplate() { return new RestTemplate(); } }
结果: