在微服務(wù)架構(gòu)中,我們將一個項目拆分成很多個獨(dú)立的模塊,這些獨(dú)立的模塊通過遠(yuǎn)程調(diào)用來互相配合工作,但是,在高并發(fā)情況下,通信次數(shù)的增加會導(dǎo)致總的通信時間增加,同時,線程池的資源也是有限的,高并發(fā)環(huán)境會導(dǎo)致有大量的線程處于等待狀態(tài),進(jìn)而導(dǎo)致響應(yīng)延遲,為了解決這些問題,我們需要來了解Hystrix的請求合并。
成都網(wǎng)站建設(shè)、成都做網(wǎng)站介紹好的網(wǎng)站是理念、設(shè)計和技術(shù)的結(jié)合。創(chuàng)新互聯(lián)公司擁有的網(wǎng)站設(shè)計理念、多方位的設(shè)計風(fēng)格、經(jīng)驗豐富的設(shè)計團(tuán)隊。提供PC端+手機(jī)端網(wǎng)站建設(shè),用營銷思維進(jìn)行網(wǎng)站設(shè)計、采用先進(jìn)技術(shù)開源代碼、注重用戶體驗與SEO基礎(chǔ),將技術(shù)與創(chuàng)意整合到網(wǎng)站之中,以契合客戶的方式做到創(chuàng)意性的視覺化效果。Hystrix中的請求合并,就是利用一個合并處理器,將對同一個服務(wù)發(fā)起的連續(xù)請求合并成一個請求進(jìn)行處理(這些連續(xù)請求的時間窗默認(rèn)為10ms),在這個過程中涉及到的一個核心類就是HystrixCollapser,OK,接下來我們就來看看如何實(shí)現(xiàn)Hystrix的請求合并。
服務(wù)提供者接口
我需在在服務(wù)提供者中提供兩個接口供服務(wù)消費(fèi)者調(diào)用,如下:
@RequestMapping("/getbook6") public Listbook6(String ids) { System.out.println("ids>>>>>>>>>>>>>>>>>>>>>" + ids); ArrayList books = new ArrayList<>(); books.add(new Book("《李自成》", 55, "姚雪垠", "人民文學(xué)出版社")); books.add(new Book("中國文學(xué)簡史", 33, "林庚", "清華大學(xué)出版社")); books.add(new Book("文學(xué)改良芻議", 33, "胡適", "無")); books.add(new Book("ids", 22, "helloworld", "haha")); return books; } @RequestMapping("/getbook6/{id}") public Book book61(@PathVariable Integer id) { Book book = new Book("《李自成》2", 55, "姚雪垠2", "人民文學(xué)出版社2"); return book; }