spring cloud ribbon是乙個基於http和tcp的客戶端負載均衡工具,它基於netflix ribbon實現。通過spring cloud的封裝,可以讓我們輕鬆地將面向服務的rest模版請求自動轉換成客戶端負載均衡的服務呼叫.
下面乙個小demo呈上,介紹ribbon結合resttemplate進行服務呼叫,以及ribbon客戶端負載均衡的實現
1.新建springboot子工程作為服務消費者,老規矩先導入相關依賴(ps:springcloud依賴在其父工程已經匯入)
org.springframework.boot
spring-boot-starter-web
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
org.springframework.cloud
spring-cloud-starter-netflix-ribbon
2.在springboot啟動類上加上註解@enableeurekaclient和@enablediscoveryclient,並準備乙個resttemplate例項(ps:結合註解@loadbalanced才能實現客戶端負載均衡)
@enableeurekaclient
@enablediscoveryclient
public static void main(string args)
@bean
@loadbalanced //客戶端負載均衡
public resttemplate resttemplate()
}
#埠
server:
port: 9090
#服務名稱
spring:
name: consumer
eureka:
client:
service-url:
defaultzone:
4.在消費者工程中編寫乙個controller以進行服務呼叫
@restcontroller
public class consumercontroller
}
5.準備乙個服務提供者埠8080,編寫乙個controller用於接收消費者的請求
@restcontroller
public class providercontroller ")
public int port;
public string hello()
}
將服務提供者copy出乙份,改埠號為8081,其它不動
6.分別啟動註冊中心10000,兩個服務提供者8080和8081,以及消費者9090
訪問http://localhost:10000/eureka,觀察下圖可知兩個服務提供者已組建為乙個集群
重複訪問http://localhost:9090/helloconsumer,發現實際呼叫的服務會在兩個提供者間輪詢
說明:2.服務間的呼叫,在url中要以服務名稱代替ip+埠,如:http://provider/helloprovider
Springcloud微服務 元件三Ribbon
繼上兩篇接著說我們將服務註冊到eureka註冊中心後,那麼服務之間的呼叫是怎麼完成的?我們的消費者想要去註冊中心上消費我們的服務這裡就需要使用到springcloud 的元件ribbon ribbon是乙個基於http和tcp的客戶端負載均衡器。當使用ribbon對服務進行訪問的時候,它會實現從eu...
SpringCloud之Dashboard 流監控
新建springcloud consumer hystrix dashboard模組 新增依賴 org.springframework.cloudgroupid spring cloud starter hystrixartifactid 1.4.6.releaseversion dependenc...
SpringCloud之Hystrix應用實踐
使用springcloud的hystrix功能,有幾種方式 1 單應用監聽,也可以用於測試 引用包 org.springframework.boot spring boot starter actuator org.springframework.cloud spring cloud starter...