Kong配置service負載均衡

2021-09-25 05:18:31 字數 3813 閱讀 7862

1. 建立upstream

kong提供的乙個負載的功能,基於nginx的虛擬主機的方式做的負載功能。在service中的host可指定為upstream物件,upstream新增多個target來實現負債均衡。

--新增upstream

curl -i -x post --url http://localhost:8001/upstreams/ --data 'name=nhs.wilmar.service'

--新增成功

content-length: 670

2. 建立target關聯upstream

target就是在upstream進行負載均衡的終端。微服務高可部署時,需要將每個節點作為乙個target,並設定負載的權重。用upstream的id或者name來關聯,例如兩個節點:

--新增target 1

curl -i -x post --url http://localhost:8001/upstreams/}targets --data 'target=10.229.255.42:9007' --data 'weight=100'

--新增target 2

curl -i -x post --url http://localhost:8001/upstreams/nhs.wilmar.service/targets --data 'target=10.229.255.42:9008' --data 'weight=50'

--新增成功

content-length: 169

3. service(服務)

kong對外提供的api,通過host配置可訪問對應的服務。可與route關聯,乙個service可配置多個route。可通過plugin減少或者增加header或其他內容。通過hosts屬性與upstream關聯。

--新增服務

--data 'host=nhs.wilmar.service'

--新增結果

content-length: 263

4. route(路由)

kong路由,與service關聯。配置後可**到service,乙個service可配置多個route。route作為客戶端的入口,通過將route和service的松耦合,可以通過hosts path等規則的配置,對應到相關的service。

--新增路由

--data 'service.id=1d6709e4-298b-4b8d-842b-7f74b9551f15'

--新增成功

content-length: 345

kong的負載均衡搭建完畢,檢視測試結果。

[root@shh-hq-nhs01s etc]# curl  

hello, i'm kong service. port: 9007

[root@shh-hq-nhs01s etc]# curl

hello, i'm kong service. port: 9007

[root@shh-hq-nhs01s etc]# curl

hello, i'm kong service. port: 9007

[root@shh-hq-nhs01s etc]# curl

hello, i'm kong service. port: 9007

[root@shh-hq-nhs01s etc]# curl

hello, i'm kong service. port: 9008

[root@shh-hq-nhs01s etc]# curl

hello, i'm kong service. port: 9007

[root@shh-hq-nhs01s etc]# curl

hello, i'm kong service. port: 9008

5.負載均衡補充

各個模組對應的介面,有父子關係的,查詢時帶上父類的id或者名稱。每個模組對應的api(modules指services,routes,upstreams,targets):

--單個查詢 

--列表查詢 /

--父子關係

--更新

--刪除

curl -i -x delete http://host:8001//

時序圖:

sequencediagram

routes->> kong services: match

kong services->> upstreams: match

upstreams->> targets: match

targets->> wilmar micro services: visit

初識 Kong 之負載均衡

使用 kong community edition 社群版 v1.3.0 來搭建乙個負載均衡器,由於 kong 是基於 openresty 的,而 openresty 又是 nginx 的二次封裝,所有很多配置項和 nginx 類似。來看乙個較為典型的 nginx 負載均衡配置 upstream h...

Nginx配置kong集群

nginx 配置kong集群 如果route設定的匹配規則是 header裡面的host,nginx在 請求的時候需要加上,否則請求的host會被過濾掉,導致kong的route 匹配規則是host的route 不能匹配到正確的service nginx的ssl模組必須安裝openssl yum i...

kong配置Cassandra集群

cassandra.yaml cluter name your cluster name authenticator passwordauthenticator 設定使用賬號密碼登入 data file directories var lib cassandra data 資料儲存目錄 seed p...