2016-09-07 7 views
1

ユーザーリクエストの負荷を分散するKong APIゲートウェイの後ろにマイクロサービスのインスタンスが複数存在します。KONG APIゲートウェイでのロードバランシング

Sayマイクロサービス1は、KONG APIゲートウェイの後ろに置かれた複数のインスタンスで乗算されます。そのような場合、ユーザー1からの要求は最初のインスタンスにヒットし、ユーザー2からの要求は、その可用性(ロード・バランシング)に基づいて同じサービスの他のいくつかのインスタンスにヒットする必要があります。 (ie)kongの単一のAPIに複数の上流URLを持つことができるかどうか。ロードバランスのためにnginxを使いたくない。どうすれば解決できるのかアドバイスをお願いします。

+1

https://github.com/Mashape/kong/issues/157 - この機能はv0.10でリリースされるべきです – Mark

答えて

1

0.10からは、名前付きアップストリームを作成してターゲットを関連付け/削除することができます。例えば

あなたは、あなたがそれにhelloworld上流と関連付けるターゲットを作成することができupstream_url=http://helloworld/を持っている場合:あなたはDNSベースのロードバランシングをしたくない場合は

curl -d "name=helloworld" 127.0.0.1:8001/upstreams 
curl -d "host=some.host.com" 127.0.0.1:8001/upstreams/helloworld/targets/ 
curl -d "host=2.2.2.2" 127.0.0.1:8001/upstreams/helloworld/targets/ 
+0

アップストリーム(helloworld)はupstream_url(http://こんにちは世界/)?または、アップストリームはどのようにAPIオブジェクトにリンクされていますか? – StarCub

0

リングバランサ戦略を香港で使用することができます。詳細はKong Load Balancing Referenceを参照してください!

# create an upstream 
$ curl -X POST http://kong:8001/upstreams \ 
    --data "name=address.v1.service" 

# add two targets to the upstream 
$ curl -X POST http://kong:8001/upstreams/address.v1.service/targets \ 
    --data "target=192.168.34.15:80" 
    --data "weight=100" 
$ curl -X POST http://kong:8001/upstreams/address.v1.service/targets \ 
    --data "target=192.168.34.16:80" 
    --data "weight=50" 

# create an API targeting the Blue upstream 
$ curl -X POST http://kong:8001/apis/ \ 
    --data "name=address-service" \ 
    --data "hosts=address.mydomain.com" \ 
    --data "upstream_url=http://address.v1.service/address" 

address.mydomain.comに設定されたホストヘッダーを持つ要求は、2つの定義済みターゲットに対してKongによってプロキシされます。リクエストの2/3はhttp://192.168.34.15:80/address(重量= 100)に、1/3はhttp://192.168.34.16:80/address(重量= 50)になります。

関連する問題