【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
继续上一篇,新建子模块consul-consumer服务发现,对服务注册模块consul-provider调用。
1、创建子模块consul-consumer
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-consul-discovery</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>
继承父模块daddy,修改pom
<parent> <groupId>com.springcloud</groupId> <artifactId>daddy</artifactId> <version>0.0.1-SNAPSHOT</version> </parent>
daddy修改pom对子模块consul-consumer的依赖
<module>consul-consumer</module>
2、application.properties
server.port=8066 spring.application.name=consul-consumer spring.cloud.consul.host=localhost spring.cloud.consul.port=8500 # 设置不需要注册到consul中 spring.cloud.consul.discovery.register=false
3、open-feign调用
@FeignClient(value = "consul-provider") public interface MyFeign { @GetMapping(value = "/hi") String hi(@RequestParam("name") String name); }
@Component public class ComsuerService implements MyFeign { public String hi(String name){ return "调用异常"; } }
4、controller层
@RestController public class ConsumerController { @Autowired private DiscoveryClient discoveryClient; @Autowired MyFeign myFeign; /** * 获取所有服务 */ @GetMapping("/services") public Object services() { return discoveryClient.getInstances("consul-provider"); } @GetMapping(value = "/hi") public String sayHi(String name){ return myFeign.hi(name); } }
5、启动类
添加以下注解
@EnableFeignClients
6、测试
consul服务器运行,启动consul-provider模块,在启动consul-consumer子模块,调用consul-consumer的hi接口
成功运行,配置成功,实现了consul-comsuer的发现服务功能。
来源:oschina
链接:https://my.oschina.net/mdxlcj/blog/3154087