首先官方: https://github.com/Netflix/ribbon
ribbon負載均衡Ribbon的核心元件(使用其他負載均衡算法)
ribbon負載均衡Ribbon的核心元件(使用其他負載均衡算法) ribbon自帶以下幾種算法
ribbon負載均衡Ribbon的核心元件(使用其他負載均衡算法) 實作如下場景的負載均衡
ribbon負載均衡Ribbon的核心元件(使用其他負載均衡算法)
ribbon負載均衡Ribbon的核心元件(使用其他負載均衡算法) 簡單使用(預設用的時輪詢算法)
ribbon負載均衡Ribbon的核心元件(使用其他負載均衡算法)
ribbon負載均衡Ribbon的核心元件(使用其他負載均衡算法) 接下來用restTemplate調用其他工程時,通過注冊中心來調用。是以調用時位址寫服務提供者注冊到注冊中心的工程名就行
ribbon負載均衡Ribbon的核心元件(使用其他負載均衡算法)
ribbon負載均衡Ribbon的核心元件(使用其他負載均衡算法) Ribbon的核心元件(使用其他負載均衡算法)
ribbon負載均衡Ribbon的核心元件(使用其他負載均衡算法)
ribbon負載均衡Ribbon的核心元件(使用其他負載均衡算法)
ribbon負載均衡Ribbon的核心元件(使用其他負載均衡算法) Ribbon自定義負載均衡算法
想要自定義負載均衡算法,就需要在啟動來引入一個注解:
ribbon負載均衡Ribbon的核心元件(使用其他負載均衡算法)
ribbon負載均衡Ribbon的核心元件(使用其他負載均衡算法) 下圖這樣自定義類就生效了,當然了,這裡我自定類中還是寫的它自帶的随機算法。接下來看就是自定義了
ribbon負載均衡Ribbon的核心元件(使用其他負載均衡算法) 自定義負載均衡算法
需求實作:我們實作一個自定義負載均衡算法規則:依舊輪詢政策,但是加上新需求,每個伺服器要求被調用5次,也即是以前是每台機器一次,現在每台機器5次
首先參考它官方自帶的随機算法怎麼實作的:https://github.com/Netflix/ribbon/blob/master/ribbon-loadbalancer/src/main/java/com/netflix/loadbalancer/RandomRule.java
看看它是怎麼寫的
ribbon負載均衡Ribbon的核心元件(使用其他負載均衡算法) 然後将剛剛那個需求實作
ribbon負載均衡Ribbon的核心元件(使用其他負載均衡算法)
ribbon負載均衡Ribbon的核心元件(使用其他負載均衡算法)