クラスター構成 
EMQXにおけるクラスターとは、高いスケーラビリティとフォールトトレランスを備えたMQTTメッセージングシステムを提供するために協調動作するEMQXノードのグループです。クラスタリングにより、複数のノードに負荷を分散でき、1つ以上のノードが故障してもシステムが継続して稼働できるようにします。
ノード名の設定 
クラスター作成の前に、EMQXのノード名の概念について理解しましょう。EMQXノードは名前で識別されます。ノード名は、ノード名部分とホスト部分の2つで構成され、@で区切られます。例えば、emqx@s1.emqx.io のようになります。ホスト部分はIPアドレスか完全修飾ドメイン名(FQDN)でなければなりません。例として:
- サーバー s1.emqx.ioにデプロイされたEMQXノードの場合、ノード名はemqx@s1.emqx.ioとします。
- このサーバーが固定IP(192.168.0.10)を持つ場合、ノード名はemqx@192.168.0.10とします。
emqx.confでノードを設定する場合、以下のように記述します。
bash
node {
  name = "emqx@s1.emqx.io"
  role = core
}ここで、
- nameは設定したいノード名を指します。例:- emqx@localhost。
- roleはEMQXクラスター内でノードが果たす役割を示します。役割はコアノード(core)とレプリカントノード(replicant)の2種類があります。コアノードとレプリカントノードの詳細はEMQXクラスタリング - コアノードとレプリカントノードを参照してください。- デフォルト値:core
- 選択可能な値:coreまたはreplicant
 
- デフォルト値:
クラスターの設定 
このセクションでは、EMQXクラスターの設定方法を説明します。クラスター設定はコアノードまたはレプリカントノードのいずれかで行えます。レプリカントノードで設定する場合、例えば core_nodes のように特定の条件下でのみ有効になる設定項目があります。
- ノードの node.db_backendがrlogに設定されていること(rlogをデータベースバックエンドとして使用)。
- ノードの node.roleがreplicantに設定されていること(レプリカントノードとして機能)。
- ノードの node.discovery_strategyがmanualまたはstaticに設定されていること。自動クラスター検出機構を使用する場合は設定不要です。ノード検出戦略と関連設定の詳細はクラスターの作成を参照してください。
bash
cluster {
  name = emqxcl
  discovery_strategy = manual
  core_nodes = []
  driver = tcp
  ssl_options {
    certfile = ""
    keyfile = ""
    cacertfile = ""
  }
}各設定項目の説明は以下の通りです。
| 設定項目 | 説明 | デフォルト値 | 選択可能な値 | 
|---|---|---|---|
| name | クラスターの名前を設定します | emqxcl | |
| discovery_strategy | クラスターのノード検出戦略を設定します | manual | manual,static,dns,etcd,k8s,singleton | 
| core_nodes | レプリカントノードが接続するコアノードを設定します。複数ノードはカンマ区切りで指定可能 | -- | -- | 
| driver | EMQXノード間通信のトランスポートプロトコルを設定します | tcp | tcp,SSL | 
| ssl_options | リスナーのSSL/TLS設定オプションで、3つのプロパティを持ちます | -- | -- | 
| ssl_options.cacertfile | クライアント証明書の真正性を検証するための信頼されたCA証明書(PEM形式)ファイル | -- | -- | 
| ssl_options.certfile | リスナー用のSSL/TLS証明書チェーン(PEM形式)ファイル。ルートCA以外の証明書の場合は中間CA証明書を連結してチェーンを形成 | -- | -- | 
| ssl_options.keyfile | SSL/TLS証明書に対応する秘密鍵(PEM形式)ファイル | -- | -- | 
| ssl_options.fail_if_no_peer_cert | trueの場合、クライアントが証明書を送信しない(空の証明書)とサーバーは失敗します。falseの場合は無効な証明書送信時のみ失敗します(空の証明書は有効とみなす) | -- | -- | 
TIP
EMQXはより詳細なカスタマイズに対応するため、多くの設定項目を提供しています。詳細はEMQX Enterprise Configuration Manual for Enterpriseをご覧ください。