- ribbon默認的負載均衡策略是循環請求應用,修改策略是在調用方的application.yml配置中設置。
- ribbon會存儲註冊中心應用,而後定時去更新,而不是每次都要先訪問註冊中心,再訪問應用
- 依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency>
複製代碼
- 配置RestTemplate
/**
* @Bean是一個方法級別上的註解,
* 主要用在@Configuration註解的類裏,
* 也能夠用在@Component註解的類裏。
* 添加的bean的id爲方法名
*/
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
複製代碼
- 在service中注入RestTemplate, 注意:url參數中,只須要應用名,不須要端口,
@Resource
private RestTemplate restTemplate;
//注意:只須要應用名稱(不區分大小寫),不須要端口
String url=String.format("http://%s/api/v1/product/queryProductByIds?ids=%d", APP_NAME_PRODUCT, Integer.parseInt(map.get("productId").toString()));
List list=restTemplate.getForObject(url, List.class);
logger.info("ribbon 查詢返回結果:{}", JSON.toJSONString(list));
if(list!=null && list.size()>0) {
orderMapper.saveOrder(map);
}
複製代碼