Setiap entri ticketing.toml (opsional) juga dapat diisikan lewat environment variable. Urutan prioritas adalah environment variable > ticketing.toml > nilai default, dan key serta nilai boolean tidak case-sensitive. Docker image berbasis scratch sehingga konfigurasi lewat environment variable adalah cara default (untuk memakai file konfigurasi, mount lalu tentukan path via CONFIG).
| Environment Variable | Default | Deskripsi |
|---|---|---|
PORT (SERVER_PORT) | 5225 | Port listen TCP. Diabaikan pada mode cluster, memakai port dari CLUSTER_SELF |
DEBUG (SERVER_DEBUG) | tergantung build | 1/true untuk log debug |
SOCKET_BIND | 0.0.0.0 | Alamat listen |
SOCKET_NODELAY | true | TCP_NODELAY |
SOCKET_READ_BUF_LEN | 4096 | Buffer baca per koneksi (byte) |
SOCKET_REPLY_QUEUE | 1024 | Panjang antrean respons per koneksi |
SOCKET_REPLY_BATCH | 64 | Jumlah maksimum respons yang digabung dalam satu write |
SWEEP_INTERVAL_SECS | 5 | Interval pembersihan key yang kedaluwarsa (detik) |
CLUSTER_SELF | (tidak ada) | Alamat yang diiklankan node ini, host:port. Jika ada, mode cluster aktif |
CLUSTER_PEERS | (tidak ada) | Daftar alamat node (dipisah koma). Urutan = prioritas promosi, harus menyertakan self, minimal 2 |
CONFIG | ./conf/ticketing.toml | Path file konfigurasi |
[cluster] (atau CLUSTER_*) tidak ada, node berjalan sebagai single node. Paling cepat, tetapi terjadi gangguan singkat saat restart dan state berada di memori sehingga hilang saat restart (lease menjadi jaring pengaman).CLUSTER_PEERS yang sama (berurutan sesuai prioritas) dan CLUSTER_SELF yang menunjuk ke dirinya sendiri. Di antara node yang hidup, satu dengan prioritas tertinggi menjadi active dan sisanya menjadi standby yang menerima replikasi real-time. Untuk prinsip kerja lebih detail, lihat Cara Kerja dan Protokol — Server ↔ Server.Deployment cluster Kubernetes menggunakan StatefulSet + headless service. Setiap pod diberi nama DNS yang stabil (
ticketing-0.ticketing…,ticketing-1.ticketing…), nama-nama tersebut dimasukkan keCLUSTER_PEERSsesuai urutan prioritas, danCLUSTER_SELFsetiap pod disuntikkan otomatis lewat downward API (metadata.name).
Ctrl+C), lalu melalui handoff standby akan dipromosikan dan klien berpindah.sarolab/ticketing · Github: saro-lab/ticketing