[Spring cloud 一步步实现广告系统] 10. 使用Ribbon 实现微服务调用
2019-07-31 21:24
1771 查看
在使用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 RestTemplate}Bean * @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 一步步实现广告系统] 配置项目结构 & 实现Eureka服务
- [Spring cloud 一步步实现广告系统] 3. 网关路由
- Spring Cloud版——电影售票系统<四>使用Hystrix实现微服务的容错处理
- Spring cloud使用Ribbon服务调用结果强转报错:java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast
- spring cloud之服务调用及使用ribbon实现负载均衡(三)
- [Spring cloud 一步步实现广告系统] 7. 中期总结回顾
- [Spring cloud 一步步实现广告系统] 4. 通用代码模块设计
- spring cloud-使用feign来消费Restful服务同时加入Ribbon来实现负载均衡
- SpringCloud使用eureka(rest)和ribbon实现服务调用和负载均衡
- 【Spring Cloud】使用Ribbon进行微服务调用
- [Spring cloud 一步步实现广告系统] 9. 主类和配置文件
- linux下使用系统调用编程实现dir命令功能
- 使用接口的方式调用远程服务 ------ 利用动态调用服务,实现.net下类似Dubbo的玩法。
- spring cloud搭建微服务second-fiberhome(三):consul结合config以及bus实现配置文件通过RabbitMQ动态调用
- SpringCloud 查找调用REST服务使用RestTemplate(ribbon负载)或feign模式 教程源码 火推
- 使用C#调用系统API实现内存注入
- 使用PHP调用系统命令实现ffmpeg的调用
- .Net中使用MailMessage和SmtpClient完成调用三方邮箱服务,实现接入邮箱发件功能
- 后端实现调用其他系统Restful接口服务
- Spring Cloud版——电影售票系统<三>使用Feign实现声明式REST调用