Pull動作における通信

libarms の arms_pull() 関数を実行すると、コンフィグ取得動作を開始する。

  1. LS に対するRS 探索要求(rs-solicitation)
サービスアダプタからLS に対してHTTPS 接続を行い、RS 接続情報を取得する。 通信はSSLによって暗号化されるほか、認証キー(LS-SA key) によって認証が行われる。
  1. RS に対するコンフィグ要求(config-solicitation)
サービスアダプタからRS に対してHTTPS 接続を行い、設定情報を取得する。通信はSSL によって暗号化されるほか、 認証キー(RS-SA key) によって認証が行われる。
../_images/libarms-pull.png

冗長化への対応

RS がLS に複数台(最大で5 台まで) 登録されている場合、Pull の冗長化動作が可能である。 この場合、Pull 動作は以下のようになる。

  • 初回起動時の動作

    LS から取得したRS アドレスのリストの先頭から常に接続を試みる。 失敗した場合、[RS1 台目] → [RS2 台目] → [RS3 台目] →... のように、順に接続先を変更する。

  • rs-solicitation とconfig-solcitation の切り替え

    前回のconfig-solicitation 時にどのRS で成功したか覚えておき、 コンフィグ再取得要求(RS) によるconfig-solicitation 時はそのRS から接続を試みる。 コンフィグ再取得要求(LS) などにより rs-solicitation を実行するとRS 情報を再取得するため、 成功した情報はリセットされ、取得した RS アドレスのリストの先頭から常に接続を試みる。

  • 再起動時の動作

    接続に成功したサーバ情報は、libarms 内部ステート情報に保存される。 このため、 arms_dump_state() を使って保存した情報を arms_restore_state() を用いて読み込んだ場合、その後のコンフィグ取得動作時には以前成功したサーバから接続を試みることができる。

リトライ動作

LS から取得したRS アドレスのリストに対する接続が全て失敗すると、 所定の間隔、回数(LS にて設定するパラメータ) でリトライを行う。 RS アドレスのリストが2 台で、リトライ回数が5 回だとすると、2 × 5 で、計10 回の接続を試みることになる。

目次

前のトピックへ

コンフィグ

次のトピックへ

Push動作における通信

リンク