Asopitech VS
hashicorp/memberlist vs Alopex Chirps
Goのライブラリmemberlistのgossipによるメンバーシップと故障検知を、Alopex Chirpsと比べて紹介します。
更新: 2026/10/13
hashicorp/memberlistとは
hashicorp/memberlistは、gossipでクラスタのメンバーシップと故障検知を管理する、Goのライブラリです。SerfとConsulの土台です。
仕組み
- SWIM:SWIMのプロトコルをもとに、HashiCorpのLifeguardの改良を加えています。
- 収束:READMEは、結果として整合し、平均すると素早く収束すると説明しています。死んだかもしれないノードへ複数の経路で問い合わせ、ネットワークの分断に一部耐えます。
- 参加:既知のメンバーを1つ以上指定して参加します。
主な機能
- メンバーの一覧と、参加・離脱のイベント(デリゲート)。
- 伝わる速さと帯域の釣り合いを、設定で調整できます。
制限
Goのライブラリで、合意の仕組みは持ちません。READMEは、設定の項目が多く、それが最も難しい部分だと書いています。
Alopex Chirpsとの違い
どちらも、SWIM系のgossipで、メンバーシップと故障検知を行うライブラリです。Alopex Chirpsも、alive・suspect・deadの3つの状態を持ちます。
memberlistはGoで、メンバーシップに絞っています。Alopex ChirpsはRustで、メンバーシップに、QUICと相互TLSによるメッセージ送信、Raftによる合意、ファイル転送を加えています。ノードIDは永続化され、再起動しても同じIDで戻れます。
Rustのアプリに、gossipのメンバーシップと通信と合意をまとめて入れられるAlopex Chirpsを試してみよう。GitHubのクイックスタートから始められます。