初識 Kong 之負載均衡

2022-09-02 09:39:11 字數 1911 閱讀 3902

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

來看乙個較為典型的 nginx 負載均衡配置

upstream hello 

server

}

nginx 監聽來自本地 80 埠的請求,如果路徑與 /hello 匹配,便將請求原封不動的**到名稱為 hello 的upstream,而該 upstream 我們配置了乙個負載均衡器,會路由到本地的 3000 埠和 3001 埠。

@restcontroller

public static void main(string args)

public string port()

}啟動兩個 server 分別監聽本地 3000 埠和 3001 埠。

如何你的機器已經安裝好了 kong,並對 kong 的 admin api 有了基礎的認識,接下來便可以針對 kong 進行負載均衡的配置了。

建立乙個名稱 hello 的 upstream

curl -x post http://localhost:8001/upstreams --data "name=hello"
為 hello 新增兩個負載均衡節點

curl -x post http://localhost:8001/upstreams/hello/targets --data "target=localhost:3000" --data "weight=100"
curl -x post http://localhost:8001/upstreams/hello/targets --data "target=localhost:3001" --data "weight=50"
如上的配置對應了 nginx 的配置

upstream hello
使用老版本 kong 的使用者可能會接觸過 api 這個概念,但是在 kong v1.3.0 中,已經被廢除了,取而代之的是 service 和 route 的配置。

配置乙個 service

curl -x post http://localhost:8001/services --data "name=hello" --data "host=hello"
host 的值便對應了 upstream 的名稱,配置成功後會返回生成的 service 的 id,我的返回結果:8695cc65-16c1-43b1-95a1-5d30d0a50409

為上面的 service 配置路由資訊

curl -x post http://localhost:8001/routes --data "paths=/hello" --data "service.id=8695cc65-16c1-43b1-95a1-5d30d0a50409"
請求路徑包含 /hello 的請求都會被轉移到對應的 service 進行處理。

如上的配置便對應了

location /hello
curl http://localhost:8000/hello/hi
因為複雜均衡的原因,需要多測試幾次,多次 curl 之後結果如下:

3000

3000

3000

3000

3000

3000

3001

3001

3001

3000

3001

原貼戳我

Kong配置service負載均衡

1.建立upstream kong提供的乙個負載的功能,基於nginx的虛擬主機的方式做的負載功能。在service中的host可指定為upstream物件,upstream新增多個target來實現負債均衡。新增upstream curl i x post url http localhost 8...

初識nginx負載均衡

環境 主機三颱,系統centos,乙個為nginx伺服器 1 180.150.184.156,另外兩台發布tomcat服務 2 180.150.184.202 3 180.150.184.203。1 nginx安裝 yum y install nginx 修改nginx配置檔案nginx.conf ...

初識Nginx負載均衡

我們有時候,用自己的計算機a想訪問國外的某個 b,但是訪問不了,此時,有一台中間伺服器c可以訪問國外的 b,那麼,我們可以用自己的電腦訪問伺服器c,通過c來訪問b這個 那麼這個時候,伺服器c稱為 伺服器,這種訪問方式叫做正向 正向 有乙個特點,就是我們明確知道要訪問哪個 當我們有乙個伺服器集中,並且...