Spring RestTemplate作为负载平衡器客户端

RestTemplate可以自动配置为使用功能区。要创建负载平衡RestTemplate创建RestTemplate @Bean并使用@LoadBalanced限定符。

警告:通过自动配置不再创建RestTemplate bean。它必须由单个应用程序创建。

@Configuration
public class MyConfiguration {

    @LoadBalanced
    @Bean
    RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

public class MyClass {
    @Autowired
    private RestTemplate restTemplate;

    public String doOtherStuff() {
        String results = restTemplate.getForObject("http://stores/stores", String.class);
        return results;
    }
}

URI需要使用虚拟主机名(即服务名称,而不是主机名)。Ribbon客户端用于创建完整的物理地址。有关 如何设置RestTemplate的详细信息,请参阅 RibbonAutoConfiguration。

重试失败的请求

负载平衡RestTemplate可以配置为重试失败的请求。默认情况下,该逻辑被禁用,您可以通过将Spring重试添加到应用程序的类路径来启用它。负载平衡RestTemplate将符合与重试失败请求相关的一些Ribbon配置值。如果要在类路径中使用Spring重试来禁用重试逻辑,则可以设置spring.cloud.loadbalancer.retry.enabled=false。您可以使用的属性是client.ribbon.MaxAutoRetries,client.ribbon.MaxAutoRetriesNextServer和client.ribbon.OkToRetryOnAllOperations。请参阅Ribbon文档 ,了解属性的具体内容。

原文地址:http://blog.51cto.com/13795270/2126000

时间: 2024-07-30 16:00:53

Spring RestTemplate作为负载平衡器客户端的相关文章

Spring Cloud Commons教程(二)Spring RestTemplate作为负载平衡器客户端

RestTemplate可以自动配置为使用功能区.要创建负载平衡RestTemplate创建RestTemplate @Bean并使用@LoadBalanced限定符. 警告 通过自动配置不再创建RestTemplate bean.它必须由单个应用程序创建. @Configuration public class MyConfiguration { @LoadBalanced @Bean RestTemplate restTemplate() { return new RestTemplate(

为何一个@LoadBalanced注解就能让RestTemplate拥有负载均衡的能力?【享学Spring Cloud】

每篇一句 你应该思考:为什么往往完成比完美更重要? 前言 在Spring Cloud微服务应用体系中,远程调用都应负载均衡.我们在使用RestTemplate作为远程调用客户端的时候,开启负载均衡极其简单:一个@LoadBalanced注解就搞定了. 相信大家大都使用过Ribbon做Client端的负载均衡,也许你有和我一样的感受:Ribbon虽强大但不是特别的好用.我研究了一番,其实根源还是我们对它内部的原理不够了解,导致对一些现象无法给出合理解释,同时也影响了我们对它的定制和扩展.本文就针对

Microsoft Azure 的负载平衡器的Session Sticky

Microsoft Azure 的负载平衡器是一种 Layer-4负载平衡器.Microsoft Azure 负载平衡器通过针对给定输入端点上接收到的流量计算哈希函数,在一组可用的服务器(虚拟机)之间分配负载.计算哈希函数是为了使来自同一连接(TCP 或 UDP)的所有数据包最终位于同一台服务器上.Microsoft Azure 负载平衡器采用 5个信息(源 IP.源端口.目标 IP.目标端口.协议类型)计算用于将流量映射到可用服务器的哈希函数.我们选择的哈希函数使到服务器的连接的分布非常随机.

Envoy如何打败Linkerd成为L7负载平衡器的最佳选择?

本文转自:http://www.servicemesh.cn/?/article/41 作者:MIKE WHITE 翻译:姚炳雄 原文:Using Envoy to Load Balance gRPC Traffic 针对 Bugsnag(一款bug自动检测工具),我们最近启动了一个专门用来跟踪软件发布健康状况的发布仪表板项目. 这是个大任务,当我们在构建后台时,特别关注了它的性能.其中的关键领域之一是和后端服务调用相关的延迟,在最后,我们决定用 Google 的超级快速的 gRPC 框架替换R

Spring RestTemplate 之get请求

一,简介:Spring RestTemplate 是 Spring 提供的用于访问 Rest 服务的客户端,RestTemplate 提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率 二.RestTemplate中几种常见请求方法的使用 ●get请求:在RestTemplate中,发送一个GET请求,我们可以通过如下两种方式 第一种:getForEntity getForEntity方法的返回值是一个ResponseEntity<T>,ResponseEntity<

Azure内部负载平衡器

负载平衡是云计算服务中的一个必备服务项目,通常用来对负载平衡后端的计算实例(虚拟机)或应用程序进行外部访问请求的负载,以缓解处理压力并提供容错能力.在微软的私有云产品体系中,System Center的VMM组件具备创建windows系统原生NLB以及兼容第三方软硬负载平衡器的能力(比如F5),但是个人认为目前使用还是不便的,特别是在租户端.反观Azure公有云平台上,云服务功能肩负起了NLB的作用,除此之外Azure还提供了一个"内部负载平衡"功能,即对于外部NLB后面的应用或数据层

Spring RestTemplate 小结

关于RestTemplate 首先,你可以把它理解为一个发起请求并接收响应的工具类(功能类似浏览器). 其次,它其实是一个壳,具体还是通过调用别的接口来实现(如jdk自带的连接,或者HttpClient之类的,需要设置). 官方介绍 Spring's central class for synchronous client-side HTTP access. It simplifies communication with HTTP servers, and enforces RESTful p

spring restTemplate 用法

发出get请求,方式一 String url = serverUrl+"/path/path?id={id}"; int i = restTemplate.getForObject(url,int.class,id); 发出get请求,方式二 URI url= UriComponentsBuilder.fromUriString(serverUrl) .path("/path/") .queryParam("key", key) .queryPa

Spring RestTemplate: 比httpClient更优雅的Restful URL访问

{ "Author": "tomcat and jerry", "url":"http://www.cnblogs.com/tomcatandjerry/p/5899722.html" } Spring RestTemplate, 使用java访问URL更加优雅,更加方便. 核心代码: String url = "http://localhost:8080/json"; JSONObject json =