[Spring cloud 一步步实现广告系统] 10. 使用Ribbon 实现微服务调用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Spring cloud 一步步实现广告系统] 10. 使用Ribbon 实现微服务调用相关的知识,希望对你有一定的参考价值。
在使用Ribbon调用广告投放系统API之前,我们需要先创建2个VO对象,AdPlanVO
,AdPlanGetRequestVO
.
//数据请求对象
@Data
@NoArgsConstructor
@AllArgsConstructor
public class AdPlanGetRequestVO
private Long userId;
private List<Long> planIds;
----------------------------------
//API请求响应结果反序列化对象
@Data
@AllArgsConstructor
@NoArgsConstructor
public class AdPlanVO
private Long planId;
private Long userId;
private String planName;
private Integer planStatus;
private Date startDate;
private Date endDate;
private Date createTime;
private Date updateTime;
在AdSearchApplication
启动类中,添加RestTemplate
客户端。
public class AdSearchApplication
...
/**
* 注册@link RestTemplateBean
* @return
*/
@Bean
@LoadBalanced //让RestTemplate在调用服务的时候,可以实现负载均衡
RestTemplate restTemplate()
return new RestTemplate();
创建一个controller,来测试调用广告提供系统的API
/**
* SearchController for search information controller
*
* @author <a href="mailto:magicianisaac@gmail.com">Isaac.Zhang | 若初</a>
*/
@RestController
@Slf4j
@RequestMapping(path = "/search")
public class SearchController
//注入RestTemplate
private final RestTemplate restTemplate;
@Autowired
public SearchController(RestTemplate restTemplate)
this.restTemplate = restTemplate;
@GetMapping(path = "/plan/get-ribbon")
public CommonResponse<List<AdPlanVO>> getAdPlansUseRibbon(@RequestBody AdPlanGetRequestVO requestVO)
log.info("ad-search::getAdPlansUseRibbon -> ", JSON.toJSONString(requestVO));
return restTemplate.postForEntity(
"http://mscx-ad-sponsor/ad-sponsor/plan/get", requestVO, CommonResponse.class
).getBody();
@GetMapping(path = "/user/get")
public CommonResponse getUsers(@Param(value = "username") String username)
log.info("ad-search::getUsers -> ", JSON.toJSONString(username));
CommonResponse commonResponse = restTemplate.getForObject(
"http://mscx-ad-sponsor/ad-sponsor/user/get?username=username", CommonResponse.class, username
);
return commonResponse;
以上是关于[Spring cloud 一步步实现广告系统] 10. 使用Ribbon 实现微服务调用的主要内容,如果未能解决你的问题,请参考以下文章
[Spring cloud 一步步实现广告系统] 17. 根据流量类型查询广告
[Spring cloud 一步步实现广告系统] 22. 广告系统回顾总结
[Spring cloud 一步步实现广告系统] 3. 网关路由
[Spring cloud 一步步实现广告系统] 12. 广告索引介绍