Message Processor / Router の到達可能性の有効化と無効化

サーバーの再起動やアップグレードなど、メンテナンス中はサーバーの到達可能性を無効にすることをおすすめします。到達可能性を無効にすると、そのサーバーにトラフィックが送信されません。Message Processor の到達可能性を無効にした場合、その Message Processor にトラフィックは送信されません。

たとえば、Message Processor をアップグレードする場合の手順は次のようになります。

  1. Message Processor で到達可能性を無効にします。
  2. Message Processor をアップグレードします。
  3. Message Processor で到達可能性を有効にします。

Message Processor の到達可能性を無効または有効にする

Message Processor で到達可能性を無効にする場合、Message Processor を停止します。

/opt/apigee/apigee-service/bin/apigee-service edge-message-processor stop

Message Processor は、保留中のメッセージを処理してからシャットダウンします。新しいリクエストは、使用可能な他の Message Processor にルーティングされます。

Message Processor を再起動するには、次のコマンドを使用します。

/opt/apigee/apigee-service/bin/apigee-service edge-message-processor start
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor wait_for_ready

Message Processor でメッセージを処理する準備ができると、wait_for_ready コマンドは次のメッセージを返します。

Checking if message-processor is up: message-processor is up.

Router の到達可能性を無効または有効にする

通常、本番環境では Edge Router の前にロードバランサが配置されています。ロードバランサは、Router のポート 15999 をモニタリングし、Route が使用可能かどうか確認します。

次の URL を使用して、Router で HTTP または TCP のヘルスチェックを実行するようにロードバランサを構成します。

http://router_IP:15999/v1/servers/self/reachable

Router が到達可能な場合、この URL から HTTP 200 レスポンス コードが返されます。

Router を到達不能にするには、Router のポート 15999 をブロックします。ロードバランサが Router のポート 15999 にアクセスできない場合、リクエストは Router に転送されません。たとえば、Router ノードで次の iptables コマンドを使用すると、ポートをブロックできます。

sudo iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT

Router を使用可能にするには、iptables をフラッシュします。

sudo iptables -F

iptables でノードの他のポートが管理されている場合があります。iptables をフラッシュしたり、iptables でポート 15999 をブロックしたりする場合は、この点に注意してください。他のルールで iptables を使用している場合、-D オプションを指定すると特定の変更を元に戻すことができます。

sudo iptables -D INPUT -i eth0 -p tcp --dport 15999 -j REJECT

Router のヘルスチェックを実行する

Router では、次のタイプのヘルスチェックを実行できます。

  • ライブネス: コンポーネントを再起動できることをモニタリング サブシステムに知らせます。次に例を示します。
    To check a router's liveness:
    http://router_IP:8081/v1/servers/self/up
    
    To check a load balancer's liveness:
    http://router_IP:15999/v1/servers/self/reachable
  • レディネス: ルーターが特定の環境に対するお客様のリクエストを処理できるかどうかを指定します。

    例:

    To check both a router and MP pool's availability:
    http://router_IP:15999/{org}__{env}

    Router のステータスを確認するには、Router のポート 8081 にリクエストを送信します。

    curl -v http://router_IP:8081/v1/servers/self/up

    Router が稼働していれば、リクエストによって "true" と HTTP 200 が返されます。ただし、この呼び出しで確認できるのは Router が稼働しているかどうかだけです。ロードバランサから Router への到達可能性はポート 15999 によって制御されます。

    Message Processor のステータスを確認するには、次のリクエストを送信します。

    curl http://Message_Processor_IP:8082/v1/servers/self/up