Catatan Belajar NATS Bagian 3 Queue Groups


Setelah kita melakukan praktek simple publish subscribe menggunakan NATS. NATS juga menyediakan fitur Queue Groups yang digunakan biasanya untuk kebutuhan replika clustering. Jika suatu service mempunyai replika lebih dari satu, maka pesan tidak akan di kirimkan kesemua service yang sama karna akan mengakitbatkan duplikat. Maka dari itu Queue Groups di sini berfungsi untuk menyeimbangkan (Seperti load balancer) semua data yang dikirim ke suatu kelompok service yang sama.


diambil dari https://nats-io.github.io/docs/developer/concepts/queue.html

Untuk pengimplementasian di NATS.js nya pun cukup mudah, kita hanya butuh menambahkan { queue: '<namaGroup>' }. di parameter kedua di fungsi nats.subscribe(). contoh:

nats.subscribe('foo', {'queue':'job.workers'}, function() {
  received += 1;
});

Untuk langsung mencoba mari kita ubah subscriber yang postingan sebelumnya kita buat lalu tambahkan queue groupsnya.

nats.subscribe(TOPIC, {'queue': 'job.workers'}, handleBandungSuhuTopic)

Lalu kita coba test jalankan 2 subcriber dengan queue groups yang sama, dan satu publisher. Jika berhasil, makan pesan tidak akan di terima oleh semua subscriber. Tetapi akan di bagi2 ke semua subscriber. seperti berikut:

Repo catatan hasil belajar ini bisa diliat di github: https://github.com/aldinp16/learn-nats/