[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 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 实现微服务调用相关推荐
- [Spring cloud 一步步实现广告系统] 11. 使用Feign实现微服务调用
上一节我们使用了Ribbon(基于Http/Tcp)进行微服务的调用,Ribbon的调用比较简单,通过Ribbon组件对请求的服务进行拦截,通过Eureka Server 获取到服务实例的IP:Por ...
- feign响应拦截_[Spring cloud 一步步实现广告系统] 11. 使用Feign实现微服务调用
上一节我们使用了Ribbon(基于Http/Tcp)进行微服务的调用,Ribbon的调用比较简单,通过Ribbon组件对请求的服务进行拦截,通过Eureka Server 获取到服务实例的IP:Por ...
- 微服务feignclient_[Spring cloud 一步步实现广告系统] 11. 使用Feign实现微服务调用
上一节我们使用了Ribbon(基于Http/Tcp)进行微服务的调用,Ribbon的调用比较简单,通过Ribbon组件对请求的服务进行拦截,通过Eureka Server 获取到服务实例的IP:Por ...
- [Spring cloud 一步步实现广告系统] 22. 广告系统回顾总结
到目前为止,我们整个初级广告检索系统就初步开发完成了,我们来整体回顾一下我们的广告系统. 整个广告系统编码结构如下: 1.mscx-ad 父模块 主要是为了方便我们项目的统一管理 2.mscx-ad- ...
- [Spring cloud 一步步实现广告系统] 21. 系统错误汇总
广告系统学习过程中问题答疑 博客园 Eureka集群启动报错 Answer 因为Eureka在集群启动过程中,会连接集群中其他的机器进行数据同步,在这个过程中,如果别的服务还没有启动完成,就会出现Co ...
- [Spring cloud 一步步实现广告系统] 19. 监控Hystrix Dashboard
在之前的18次文章中,我们实现了广告系统的广告投放,广告检索业务功能,中间使用到了 服务发现Eureka,服务调用Feign,网关路由Zuul以及错误熔断Hystrix等Spring Cloud组件. ...
- [Spring cloud 一步步实现广告系统] 20. 系统运行测试
系统运行 经过长时间的编码实现,我们的主体模块已经大致完成,因为之前我们都是零散的对各个微服务自行测试,接下来,我们需要将所有的服务模块进行联调测试,Let's do it. 清除测试数据&测 ...
- [Spring cloud 一步步实现广告系统] 13. 索引服务编码实现
上一节我们分析了广告索引的维护有2种,全量索引加载和增量索引维护.因为广告检索是广告系统中最为重要的环节,大家一定要认真理解我们索引设计的思路,接下来我们来编码实现索引维护功能. 我们来定义一个接口, ...
- [Spring cloud 一步步实现广告系统] 12. 广告索引介绍
索引设计介绍 在我们广告系统中,为了我们能更快的拿到我们想要的广告数据,我们需要对广告数据添加类似于数据库index一样的索引结构,分两大类:正向索引和倒排索引. 正向索引 通过唯一键/主键生成与对象 ...
最新文章
- Vs 2015 调试ASP.NET Core修改监听端口
- 【案例】弱电机房用电负荷计算意义及计算方法
- 百练1089:数字反转
- python中线程和进程_python中线程和进程的简单了解
- 伴随我成长的编程书,赶紧收藏!!
- Intellij IDEA 安装jnetpcap开发环境与 no jnetpcap in java.library.path 的解决方案
- Spring boot (6)---SpringMVC框架和spring Boot的区别
- TensorFlow精进之路(十):循环神经网络RNN
- c++删除数组中重复元素_在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法...
- 阿里云服务器Java+Mysql+Tomcat环境搭建(Mac OS下配置)
- 架构实战项目心得(十四):spring-boot结合Swagger2构建RESTful API测试体系
- taxi计费器c语言程序,出租车计价器VHDL程序与仿真
- 拥抱认知革命:区块链时代已至,临渊羡鱼不若自我革新
- ABAP 新特性 - CORRESPONDING
- 使用GDAL/GEOS求面特征的并集
- 基于固件的漏洞挖掘方法梳理
- Error querying database. Cause: java.lang.IndexOutOfBoundsException: Index 5 out of bounds for leng
- 什么是网站可访问性?
- 主流杀毒软件引擎分析
- 为什么EDA软件对芯片设计如此重要?