Menggunakan Docker Run
Pertama kita coba deploy NATS
dengan docker run
-
docker pull nats:latest
-
docker run -p 4222:4222 -ti nats:latest
Deploy dengan docker-compose
Deploy dengan docker-compose.yml
- Buat docker-compose.yml file
version: "3.3"
services:
nats:
container_name: nats
image: nats:latest
restart: unless-stopped
ports:
- "4222:4222"
networks:
- nats-public
networks:
nats-public:
- Jalankan dengan
docker-compose up -d
Custom Config dan Aktivasi Metrics NATS
Ada kasus tertentu yang bikin kita butuh size message payload yang besar di NATS . Berikut cara menggunakan custom config nats di file docker-compose,
- Buat satu file beri nama nats-server.conf
#just example only
#nats recommended < 3Mb
max_payload: 4Mb
# Client port of 4222 on all interfaces
port: 4222
# HTTP monitoring port
monitor_port: 8222
authorization {
user: username
password: password
timeout: 2
}
- Buat/modifikasi docker-compose.yml
version: "3.3"
services:
nats:
container_name: nats
image: nats:latest
restart: unless-stopped
volumes:
- $PWD/nats-server.conf:/nats-server.conf
#or you can use one liner command
command: "-p 4222 -m 8222 --user username --pass password -c /nats-server.conf"
ports:
- "4222:4222"
#metric port for nats exporters
- "8222:8222"
#activate metric port
command: "-m 8222"
networks:
- nats-public
nats_exporter:
image: natsio/prometheus-nats-exporter:latest
restart: unless-stopped
depends_on:
- nats
container_name: nats_exporter
ports:
- "7777:7777"
command: "-varz http://nats:8222"
networks:
- nats-public
networks:
nats-public:

Metrics NATS
Docker NATS Cluster dalam 1 Server
NATS bisa di buat cluster dalam 1 server, dokumentasi mereka cukup bagus dan mudah di mengerti.
Contoh docker-compose ini saya ambil di bmcustodio - docker-compose nats cluster
version: "3.7"
services:
nats-1:
command:
- "--debug"
- "--cluster"
- "nats://0.0.0.0:6222"
- "--port"
- "4222"
- "-m"
- "8222"
image: "nats:latest"
networks:
- main
ports:
- "14222:4222"
- "18222:8222"
- "16222:6222"
volumes:
- $PWD/nats-server.conf:/nats-server.conf
nats-2:
command:
- "--debug"
- "--cluster"
- "nats://0.0.0.0:6222"
- "--port"
- "4222"
- "--routes"
- "nats://nats-1:6222"
image: "nats:latest"
networks:
- main
ports:
- "24222:4222"
- "28222:8222"
volumes:
- $PWD/nats-server.conf:/nats-server.conf
nats-3:
command:
- "--debug"
- "--cluster"
- "nats://0.0.0.0:6222"
- "--port"
- "4222"
- "--routes"
- "nats://nats-1:6222"
image: "nats:latest"
networks:
- main
ports:
- "34222:4222"
- "38222:8222"
volumes:
- $PWD/nats-server.conf:/nats-server.conf
nats_exporter:
image: natsio/prometheus-nats-exporter:latest
restart: unless-stopped
depends_on:
- nats-1
container_name: nats_exporter
ports:
- "7777:7777"
command: "-varz http://nats-1:8222"
networks:
main:
driver: bridge
ipam:
config:
- subnet: 172.25.255.0/24
driver: default
- Berdasarkan dokumentasi NATS , untuk koneksi ke NATS anda bisa menggunakan client port 14222 dan cluster port 16222 (sesuai docker-compose di atas)

Jika kamu merasa tulisan ini bermanfaat & membantu kamu, kamu bisa berdonasi lewat saweria
If you feel this website help you, you can donate at saweria