调用Consul服务(消费服务)
2024-10-07 13:32:32
调用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
最新文章
- ssh架构简单解释和vo po解释
- No space left on device you must specify the filesystem type--Linux重启挂在失败
- ios中怎么样判断路径最后的后缀名称
- django-CSRF verification failed. Request aborted
- Poj 3982 序列
- CentOS命令行无线上网
- QT5-控件-QDateEdit 和 日期类QDate
- [转]数位dp小记
- Xshell无法连接虚拟机中的Ubuntu
- 将home多余的空间分配到";/";分区下
- 转载---JavaScript执行机制
- sring引入mybatis
- my read travel
- C++ VC实现对话框窗口任意分割
- Salesforce中如何删除调试日志
- PHP学习笔记2
- zoj 3640 概率dp
- Spring Boot的filter简单使用
- C#操作Redis Hash数据表
- 3ds Max学习日记(三)
热门文章
- MVC模型的基本原理及实现原理
- getString()方法与getObject()方法的区别
- BZOJ1076/Luogu2473 奖励关(SCOI2008)状压DP+期望DP
- [SCOI2010]股票交易(单调队列优化dp)
- Kotlin学习笔记(9)- 数据类
- 再谈lmbench
- 关于vue开发的常见问题
- hdu 5868:Different Circle Permutation 【Polya计数】
- Centos7.4 修改selinux错误导致服务器起不来
- 【JVM】垃圾收集器和收集器的选择策略