MARS サーバー

概要

MARS (Mesh network Announcement Relay Storage) サーバーは Diarkis が持つ特有のサーバーで Diarkis クラスタに必ず1つ必要なサーバです。

MARS サーバーはスケールや冗長化を必要とせずに、単一障害点にならないという特徴を持っており、短時間のダウンが発生しても Diarkis クラスタ全体には影響を及ぼさない様になっております。問題発生時も再起動することで Diarkis クラスタの健全性は担保されます。

MARS サーバのセットアップ

package main

import (
	"github.com/Diarkis/diarkis"
	"github.com/Diarkis/diarkis/mars"
)

func main() {
	mars.Setup()
	diarkis.Start()
}

MARS サーバの設定

設定は JSON で記述します。

{
  "address": "127.0.0.1",
  "port": "6779",
  "fullSyncRoles": ["HTTP"],
  "enableMetricsLogging": false
}
キーデフォルト

address

"127.0.0.1"

バインドする UDP サーバーのアドレス

port

"6779"

MARS サーバーがバインドするためのポート。UDP サーバーは、指定されたポートから始まる利用可能なポートを自動的に探します。

fullSyncRoles

["HTTP"]

すべてのメッシュ・データを同期するサーバ・ロールの配列

enableMetricsLogging

false

この値を true に設定すると、MARS サーバーは 1 秒ごとにメトリクスの JSON データを標準出力に書き出します。

バージョンの異なる Diarkis を起動した場合

MARS サーバーは Diarkis サーバーのバージョンをもとにデータを分離して管理します。これによりバージョンが異なるアプリケーション同士でユーザーが混ざることを防ぎます。

最終更新