SpringCloud 使用Ribbon

2023-12-04 16:01 更新

Spring Cloud支持Feign(REST客户端构建器),还支持Spring RestTemplate 以使用逻辑服务名称/标识而不是物理URL查找服务。Feign和发现感知的RestTemplate都使用Ribbon进行客户端负载平衡。

如果要使用RestTemplate访问服务STORES,只需声明:

@LoadBalanced
@Bean
public RestTemplate loadbalancedRestTemplate() {
     new RestTemplate();
}

并以这种方式使用它(注意我们如何使用Consul中的STORES服务名称/ id而不是完全限定的域名):

@Autowired
RestTemplate restTemplate;

public String getFirstProduct() {
   return this.restTemplate.getForObject("https://STORES/products/1", String.class);
}

如果您在多个数据中心中有Consul个群集,并且要访问另一个数据中心中的服务,则仅靠服务名称/ id是不够的。在这种情况下,请使用属性spring.cloud.consul.discovery.datacenters.STORES=dc-west,其中STORES是服务名称/ id,而dc-west是STORES服务所在的数据中心。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号