在使用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 {//注入RestTemplateprivate final RestTemplate restTemplate;@Autowiredpublic 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;}
}

转载于:https://www.cnblogs.com/zhangpan1244/p/11279177.html

[Spring cloud 一步步实现广告系统] 10. 使用Ribbon 实现微服务调用相关推荐

  1. [Spring cloud 一步步实现广告系统] 11. 使用Feign实现微服务调用

    上一节我们使用了Ribbon(基于Http/Tcp)进行微服务的调用,Ribbon的调用比较简单,通过Ribbon组件对请求的服务进行拦截,通过Eureka Server 获取到服务实例的IP:Por ...

  2. feign响应拦截_[Spring cloud 一步步实现广告系统] 11. 使用Feign实现微服务调用

    上一节我们使用了Ribbon(基于Http/Tcp)进行微服务的调用,Ribbon的调用比较简单,通过Ribbon组件对请求的服务进行拦截,通过Eureka Server 获取到服务实例的IP:Por ...

  3. 微服务feignclient_[Spring cloud 一步步实现广告系统] 11. 使用Feign实现微服务调用

    上一节我们使用了Ribbon(基于Http/Tcp)进行微服务的调用,Ribbon的调用比较简单,通过Ribbon组件对请求的服务进行拦截,通过Eureka Server 获取到服务实例的IP:Por ...

  4. [Spring cloud 一步步实现广告系统] 22. 广告系统回顾总结

    到目前为止,我们整个初级广告检索系统就初步开发完成了,我们来整体回顾一下我们的广告系统. 整个广告系统编码结构如下: 1.mscx-ad 父模块 主要是为了方便我们项目的统一管理 2.mscx-ad- ...

  5. [Spring cloud 一步步实现广告系统] 21. 系统错误汇总

    广告系统学习过程中问题答疑 博客园 Eureka集群启动报错 Answer 因为Eureka在集群启动过程中,会连接集群中其他的机器进行数据同步,在这个过程中,如果别的服务还没有启动完成,就会出现Co ...

  6. [Spring cloud 一步步实现广告系统] 19. 监控Hystrix Dashboard

    在之前的18次文章中,我们实现了广告系统的广告投放,广告检索业务功能,中间使用到了 服务发现Eureka,服务调用Feign,网关路由Zuul以及错误熔断Hystrix等Spring Cloud组件. ...

  7. [Spring cloud 一步步实现广告系统] 20. 系统运行测试

    系统运行 经过长时间的编码实现,我们的主体模块已经大致完成,因为之前我们都是零散的对各个微服务自行测试,接下来,我们需要将所有的服务模块进行联调测试,Let's do it. 清除测试数据&测 ...

  8. [Spring cloud 一步步实现广告系统] 13. 索引服务编码实现

    上一节我们分析了广告索引的维护有2种,全量索引加载和增量索引维护.因为广告检索是广告系统中最为重要的环节,大家一定要认真理解我们索引设计的思路,接下来我们来编码实现索引维护功能. 我们来定义一个接口, ...

  9. [Spring cloud 一步步实现广告系统] 12. 广告索引介绍

    索引设计介绍 在我们广告系统中,为了我们能更快的拿到我们想要的广告数据,我们需要对广告数据添加类似于数据库index一样的索引结构,分两大类:正向索引和倒排索引. 正向索引 通过唯一键/主键生成与对象 ...

最新文章

  1. Vs 2015 调试ASP.NET Core修改监听端口
  2. 【案例】弱电机房用电负荷计算意义及计算方法
  3. 百练1089:数字反转
  4. python中线程和进程_python中线程和进程的简单了解
  5. 伴随我成长的编程书,赶紧收藏!!
  6. Intellij IDEA 安装jnetpcap开发环境与 no jnetpcap in java.library.path 的解决方案
  7. Spring boot (6)---SpringMVC框架和spring Boot的区别
  8. TensorFlow精进之路(十):循环神经网络RNN
  9. c++删除数组中重复元素_在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法...
  10. 阿里云服务器Java+Mysql+Tomcat环境搭建(Mac OS下配置)
  11. 架构实战项目心得(十四):spring-boot结合Swagger2构建RESTful API测试体系
  12. taxi计费器c语言程序,出租车计价器VHDL程序与仿真
  13. 拥抱认知革命:区块链时代已至,临渊羡鱼不若自我革新
  14. ABAP 新特性 - CORRESPONDING
  15. 使用GDAL/GEOS求面特征的并集
  16. 基于固件的漏洞挖掘方法梳理
  17. Error querying database. Cause: java.lang.IndexOutOfBoundsException: Index 5 out of bounds for leng
  18. 什么是网站可访问性?
  19. 主流杀毒软件引擎分析
  20. 为什么EDA软件对芯片设计如此重要?

热门文章

  1. legend3---阿里云如何多个域名指向同一个网站
  2. JPA扩展(自定义sql)
  3. 敏捷个人架构图 V1.3
  4. npm: 权限阻止修复
  5. May 18:PHP 用到的学习工具
  6. map遍历react中img图片路径出错
  7. Understanding Unix/Linux Programming-终端控制和信号
  8. YTU 2917: Shape系列-3
  9. ORACLE DBA的职责
  10. 从csv文件批量创建AD用户,带源码。