turbine介紹:附7 turbine turbine部署:第二章 部署war包到tomcat 一、總體圖 前提: 假設有兩個服務A/B分別布在兩台機器上(這裡為了簡單,使用一個服務myboot來代替),A、B都訪問myboot2的兩個介面getHotelInfo和getHotelInfo2(這兩 ...
一、使用turbine的意義
引入多個hystrix stream:
1、使用hystrix-dashboard的可以添加多個stream的功能
圖中添加的兩個stream會在真正monitor的時候分開展示,這樣的話,假設兩個stream都引用了同一個方法a,那麼方法a會分開展示兩次,如下:
實際上我們只需要統計a的處理能力,與誰調用無關,所以希望在整個dashboard下只有一個a的展示,那麼我們就需要通過turbine將這些所有a的展示匯聚起來。
註意:
- turbine的匯聚也是實時的
2、使用turbine進行匯聚
turbine介紹:附7 turbine
turbine部署:第二章 部署war包到tomcat
二、總體圖
前提:
- 假設有兩個服務A/B分別布在兩台機器上(這裡為了簡單,使用一個服務myboot來代替),A、B都訪問myboot2的兩個介面getHotelInfo和getHotelInfo2(這兩個介面也是commandKey的名字);
- 同時在一臺機器上部署了turbine.war。
測試:
- A、B對兩個介面getHotelInfo和getHotelInfo2能否分別聚合。
三、操作
1、分別將myboot項目在兩台機器上啟動
- 會用到的命令:scp myboot.jar [email protected]:~/zjg/service(將本地的myboot.jar拷貝到遠程機器的~/zjg/service目錄下)
2、啟動myboot2.jar
3、配置tomcat的webapps下的turbine/WEB-INF/classes/config.properties
InstanceDiscovery.impl=com.netflix.turbine.discovery.ConfigPropertyBasedDiscovery
#cluster
turbine.aggregator.clusterConfig=default
#turbine.aggregator.clusterConfig=myboot
turbine.instanceUrlSuffix=:8001/hystrix.stream
turbine.ConfigPropertyBasedDiscovery.default.instances=192.11.11.11,192.22.22.22
說明:配置了一個cluster為default,原因及其他配置見 附7 turbine
4、啟動turbine
- 如果需要tomcat的關閉過程可能不會關閉乾凈,使用ps -ef | grep tomcat,之後進行kill就好。
5、分別啟動兩台機器上的hystrix-dashboard
6、瀏覽器輸入
- "192.11.11.11:7979/hystrix-dashboard"並添加"192.11.11.11:8001/hystrix.stream"進行monitor
- "192.22.22.22:7979/hystrix-dashboard"並添加"192.22.22.22:8001/hystrix.stream"進行monitor
- "192.11.11.11:7979/hystrix-dashboard"(重新打開一個頁面)並添加"192.11.11.11:8080/turbine/turbine.stream"進行monitor
7、使用swagger分別訪問myboot調用myboot2的兩個介面getHotelInfo和getHotelInfo2,查看3個monitor頁面,會發現turbine.stream會是前兩個hystrix.stream的聚合結果
四、turbine結果