成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

[Spring cloud 一步步實(shí)現(xiàn)廣告系統(tǒng)] 10. 使用Ribbon 實(shí)現(xiàn)微服務(wù)調(diào)用

junbaor / 1925人閱讀

摘要:在使用調(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 List planIds;
}

----------------------------------
 
//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

相關(guān)文章

  • [Spring cloud 步步實(shí)現(xiàn)廣告系統(tǒng)] 11. 使用Feign實(shí)現(xiàn)服務(wù)調(diào)用

    摘要:上一節(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,然后再去...

    Forest10 評(píng)論0 收藏0
  • [Spring cloud 步步實(shí)現(xiàn)廣告系統(tǒng)] 7. 中期總結(jié)回顧

    摘要:在前面的過程中,我們創(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...

    cnsworder 評(píng)論0 收藏0
  • [Spring cloud 步步實(shí)現(xiàn)廣告系統(tǒng)] 8. 檢索系統(tǒng)配置&依賴

    摘要:工作流程項(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...

    dailybird 評(píng)論0 收藏0
  • 2021 年最新基于 Spring Cloud服務(wù)架構(gòu)分析

    摘要:是一個(gè)相對(duì)比較新的微服務(wù)框架,年才推出的版本雖然時(shí)間最短但是相比等框架提供的全套的分布式系統(tǒng)解決方案。提供線程池不同的服務(wù)走不同的線程池,實(shí)現(xiàn)了不同服務(wù)調(diào)用的隔離,避免了服務(wù)器雪崩的問題。通過互相注冊(cè)的方式來進(jìn)行消息同步和保證高可用。 Spring Cloud 是一個(gè)相對(duì)比較新的微服務(wù)框架,...

    cikenerd 評(píng)論0 收藏0
  • 拜托!面試請(qǐng)不要再問我Spring Cloud底層原理!

    摘要:不過大多數(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...

    wums 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<