摘要:在使用調(diào)用廣告投放系統(tǒng)之前,我們需要先創(chuàng)建個(gè)對(duì)象,數(shù)據(jù)請(qǐng)求對(duì)象請(qǐng)求響應(yīng)結(jié)果反序列化對(duì)象在啟動(dòng)類中,添加客戶端。注冊(cè)讓在調(diào)用服務(wù)的時(shí)候,可以實(shí)現(xiàn)負(fù)載均衡創(chuàng)建一個(gè),來測試調(diào)用廣告提供系統(tǒng)的若初注入
在使用Ribbon調(diào)用廣告投放系統(tǒng)API之前,我們需要先創(chuàng)建2個(gè)VO對(duì)象,AdPlanVO,AdPlanGetRequestVO.
//數(shù)據(jù)請(qǐng)求對(duì)象 @Data @NoArgsConstructor @AllArgsConstructor public class AdPlanGetRequestVO { private Long userId; private ListplanIds; } ---------------------------------- //API請(qǐng)求響應(yīng)結(jié)果反序列化對(duì)象 @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啟動(dòng)類中,添加RestTemplate客戶端。
public class AdSearchApplication { ... /** * 注冊(cè){@link RestTemplate}Bean * @return */ @Bean @LoadBalanced //讓RestTemplate在調(diào)用服務(wù)的時(shí)候,可以實(shí)現(xiàn)負(fù)載均衡 RestTemplate restTemplate(){ return new RestTemplate(); } }
創(chuàng)建一個(gè)controller,來測試調(diào)用廣告提供系統(tǒng)的API
/** * SearchController for search information controller * * @author Isaac.Zhang | 若初 */ @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> 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; } }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/75717.html
摘要:上一節(jié)我們使用了基于進(jìn)行微服務(wù)的調(diào)用,的調(diào)用比較簡單,通過組件對(duì)請(qǐng)求的服務(wù)進(jìn)行攔截,通過獲取到服務(wù)實(shí)例的然后再去調(diào)用。為了代碼的重用性,我們來創(chuàng)建一個(gè)新的作為的服務(wù)調(diào)用工具。 上一節(jié)我們使用了Ribbon(基于Http/Tcp)進(jìn)行微服務(wù)的調(diào)用,Ribbon的調(diào)用比較簡單,通過Ribbon組件對(duì)請(qǐng)求的服務(wù)進(jìn)行攔截,通過Eureka Server 獲取到服務(wù)實(shí)例的IP:Port,然后再去...
摘要:在前面的過程中,我們創(chuàng)建了個(gè)服務(wù)發(fā)現(xiàn)我們使用作為服務(wù)發(fā)現(xiàn)組件,學(xué)習(xí)了的使用。加依賴加注解改配置使用項(xiàng)目三部曲,我們可以快速添加一個(gè)新組件,并正常使用這個(gè)我沒有在項(xiàng)目中實(shí)現(xiàn),但是大家可以和一樣,三部曲搞定。 在前面的過程中,我們創(chuàng)建了4個(gè)project: 服務(wù)發(fā)現(xiàn) 我們使用Eureka 作為服務(wù)發(fā)現(xiàn)組件,學(xué)習(xí)了Eureka Server,Eureka Client的使用。 Eureka...
摘要:工作流程項(xiàng)目依賴監(jiān)控面板引入服務(wù)調(diào)用的組件依賴引入服務(wù)消費(fèi)者的依賴數(shù)據(jù)庫鏈接依賴工具類集合類操作日志監(jiān)聽解析開源工具類庫中的配置相關(guān)依賴圖片壓縮 工作流程 showImg(https://i.loli.net/2019/07/29/5d3ee1829df4d57461.png); 項(xiàng)目依賴 org.springframewo...
摘要:是一個(gè)相對(duì)比較新的微服務(wù)框架,年才推出的版本雖然時(shí)間最短但是相比等框架提供的全套的分布式系統(tǒng)解決方案。提供線程池不同的服務(wù)走不同的線程池,實(shí)現(xiàn)了不同服務(wù)調(diào)用的隔離,避免了服務(wù)器雪崩的問題。通過互相注冊(cè)的方式來進(jìn)行消息同步和保證高可用。 Spring Cloud 是一個(gè)相對(duì)比較新的微服務(wù)框架,...
摘要:不過大多數(shù)講解還停留在對(duì)功能使用的層面,其底層的很多原理,很多人可能并不知曉。每個(gè)線程池里的線程就僅僅用于請(qǐng)求那個(gè)服務(wù)。 歡迎關(guān)注微信公眾號(hào):石杉的架構(gòu)筆記(id:shishan100) 每日更新!精品技術(shù)文章準(zhǔn)時(shí)送上! 目錄 一、業(yè)務(wù)場景介紹 二、Spring Cloud核心組件:Eureka 三、Spring Cloud核心組件:Feign 四、Spring Cloud核心組件:R...
閱讀 1675·2023-04-25 18:19
閱讀 2109·2021-10-26 09:48
閱讀 1125·2021-10-09 09:44
閱讀 1766·2021-09-09 11:35
閱讀 3061·2019-08-30 15:54
閱讀 2069·2019-08-30 11:26
閱讀 2313·2019-08-29 17:06
閱讀 913·2019-08-29 16:38