Ribbon常用注解及配置


Ribbon在服務調用方使用

常用注解及范例:(服務調用方)

主類中:

@Bean
@LoadBalanced  //在RestTemplate上加入負載均衡注解
public RestTemplate restTemplate(){
return new RestTemplate();
}

服務調用代碼:

@GetMapping("{id}")
public User queryById(@PathVariable("id") Long id){
String url = "http://user-server/user/"+id; //此處直接寫服務ID即可
User user = restTemplate.getForObject(url, User.class);
return user;
}

 原理:

ribbon會攔截RestTemplate之后取出"user-server"字符串,以"user-server"作為服務ID找eureka獲取服務實例,之后自動進行拼接(即自動拼接地址及端口),並使用拼接后的url重新發送請求

因此@LoadBalanced注解必須加在RestTemplate類上

 

ribbon配置:

ribbon.ReadTimeout=1000 //處理請求的超時時間,默認為1秒
ribbon.ConnectTimeout=1000 //連接建立的超時時長,默認1秒
ribbon.MaxAutoRetries=1 //同一台實例的最大重試次數,但是不包括首次調用,默認為1次
ribbon.MaxAutoRetriesNextServer=0 //重試負載均衡其他實例的最大重試次數,不包括首次調用,默認為0次
ribbon.OkToRetryOnAllOperations=false //是否對所有操作都重試,默認false

通常配置ribbon.ReadTimeout和ribbon.ConnectTimeout即可(注意和hystrix超時時長配合的問題,詳解可參看我的另一篇《openFeign常用注解及超時時間規則詳解》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM