调用Consul服务(消费服务)

依赖项

在spring-cloud-consul-client项目中添加依赖项,POM文件内容中添加如下依赖项:

                <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> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

spring-cloud-starter-consul-discovery为Consul提供支持,spring-cloud-starter-openfeign为HTTP请求提供Feign风格的调用,spring-boot-starter-web仅仅为了使用HTTP MVC测试方便。

配置信息

spring.application.name=spring-cloud-consul-client
server.port=9002
spring.cloud.consul.host=127.0.0.1
spring.cloud.consul.port=8500
#设置不需要注册到 consul 中
spring.cloud.consul.discovery.register=false

本测试不用把自己注册到服务中心里:spring.cloud.consul.discovery.register=false,所以在启动类里也不用声明@EnableDiscoveryClient注解。

远程服务调用接口

@FeignClient(name= "service-provider")
public interface ServiceProviderRemote { @RequestMapping("/hello")
public String Hello(@RequestParam String name);
}

使用openfeign调用远程服务接口,openfeign是Spring封装后的Feign,本项目中openfeign需要使用spring-cloud-starter-consul-discovery。

测试消费服务接口

@RestController
public class TestConsul { @Autowired
ServiceProviderRemote remote; @RequestMapping("/TestHello")
public String TestHello(){
String first = remote.Hello("first-SWS");
String second = remote.Hello("second-SWS");
return first + " | " + second;
} @RequestMapping("/Test")
public String Test(){
return "OK";
}
}

为了测试负载均衡所以调用两次服务接口。

启动类

@SpringBootApplication
@EnableFeignClients
public class SpringCloudConsulClientApplication { public static void main(String[] args) {
SpringApplication.run(SpringCloudConsulClientApplication.class, args);
} }

在启动类里需要使用@EnableFeignClients注解启动openfeign。

启动项目测试

访问http://127.0.0.1:9002/TestHello查看结果:

源码

Github仓库:https://github.com/sunweisheng/spring-cloud-example

最新文章

  1. ssh架构简单解释和vo po解释
  2. No space left on device you must specify the filesystem type--Linux重启挂在失败
  3. ios中怎么样判断路径最后的后缀名称
  4. django-CSRF verification failed. Request aborted
  5. Poj 3982 序列
  6. CentOS命令行无线上网
  7. QT5-控件-QDateEdit 和 日期类QDate
  8. [转]数位dp小记
  9. Xshell无法连接虚拟机中的Ubuntu
  10. 将home多余的空间分配到&quot;/&quot;分区下
  11. 转载---JavaScript执行机制
  12. sring引入mybatis
  13. my read travel
  14. C++ VC实现对话框窗口任意分割
  15. Salesforce中如何删除调试日志
  16. PHP学习笔记2
  17. zoj 3640 概率dp
  18. Spring Boot的filter简单使用
  19. C#操作Redis Hash数据表
  20. 3ds Max学习日记(三)

热门文章

  1. MVC模型的基本原理及实现原理
  2. getString()方法与getObject()方法的区别
  3. BZOJ1076/Luogu2473 奖励关(SCOI2008)状压DP+期望DP
  4. [SCOI2010]股票交易(单调队列优化dp)
  5. Kotlin学习笔记(9)- 数据类
  6. 再谈lmbench
  7. 关于vue开发的常见问题
  8. hdu 5868:Different Circle Permutation 【Polya计数】
  9. Centos7.4 修改selinux错误导致服务器起不来
  10. 【JVM】垃圾收集器和收集器的选择策略