Skip to content

Studi kasus teknologi NATS untuk simple aplikasi chatting multiple server.

Notifications You must be signed in to change notification settings

SemmiDev/nats-lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nats-Lab

Studi kasus teknologi NATS untuk simple aplikasi chatting multiple server.

Deskripsi Proyek

Proyek ini mengimplementasikan sistem chat terdistribusi menggunakan teknologi NATS, dengan kemampuan komunikasi lintas server melalui message broker.

Persyaratan

  • Docker
  • Docker Compose
  • Make
  • Go 1.23

Arsitektur

  • 3 instance aplikasi berbeda
  • NATS sebagai message broker (pub/sub pattern)
  • WebSocket untuk komunikasi real-time
  • Port berbeda untuk setiap instance: 8081, 8082, 8083

Fitur Utama

  • Komunikasi real-time antar server
  • Scalable message passing
  • Isolasi komunikasi menggunakan NATS
  • Dukungan multiple server

Jalankan Aplikasi di Docker

# Rebuild dan start semua container
make rebuild

# Atau secara manual
docker-compose up --build

Berhenti dan Hapus Container

# Stop dan remove containers
make down

# Atau secara manual
docker-compose down

Testing

Prerequisite Tools

# Install WebSocket testing tool
npm install -g wscat

Test WebSocket Server

# Koneksi ke masing-masing server instance
# Param pertama adalah user ID, param kedua adalah room ID
wscat -c ws://localhost:8081/ws/1/1
wscat -c ws://localhost:8082/ws/2/1
wscat -c ws://localhost:8083/ws/3/1

Alternative WebSocket Testing Tools

  • websocat: Tool berbasis Rust untuk testing WebSocket
  • httpie-ws: Plugin WebSocket untuk HTTPie

Konfigurasi

  • docker-compose.yml: Definisi services dan networking
  • Dockerfile: Instruksi build untuk Go application

Monitoring

  • NATS Monitoring tersedia di http://localhost:8222
  • Gunakan kredensial:
    • Username: sammidev
    • Password: password

Troubleshooting

  • Pastikan port 4222, 8222, 8081-8083 tidak digunakan oleh aplikasi lain
  • Periksa koneksi internet untuk download dependencies
  • Gunakan docker-compose logs <service_name> untuk melihat log

Catatan Pengembangan

  • Setiap instance memiliki environment variable unik
  • Komunikasi antar server melalui NATS subject

Lisensi

Kontributor

About

Studi kasus teknologi NATS untuk simple aplikasi chatting multiple server.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published