这里我直接写了一个测试接口放在启动类里。这里我只贴了端口8001的代码,8002代码结构相同,只是端口不同。
@SpringBootApplication @EnableDiscoveryClient @RestController public class ConsulStudentService8001 { public static void main(String[] args) { SpringApplication.run(ConsulStudentService8001.class,args); } @GetMapping("/student/version") public String version(){ return "8001,202007222300"; } }OK,到这一步,启动两个服务,不出异常的情况下,可在注册中心查看当前的服务实例。
Consul消费者
服务注册中心有了,服务提供者也有了,我们再来开发一个服务消费者。
开发RestTemplate配置类,调用REST接口时使用。
@Configuration public class ApplicationContextConfig { @Bean @LoadBalanced public RestTemplate restTemplate(){ return new RestTemplate(); } }修改启动类
@SpringBootApplication @EnableDiscoveryClient @RestController public class ConsulStudentConsumer { public static void main(String[] args) { SpringApplication.run(ConsulStudentConsumer.class,args); } @Autowired RestTemplate restTemplate; @GetMapping("/consul/student/version") public String version(){ //这里使用服务实例名调用REST接口 return restTemplate.getForObject("http://consul-student-service/student/version",String.class); } }
OK, 这一步完成之后,可以启动消费者接口,刷新几次,从返回结果上能看出来是轮训调用服务提供者接口实例。