Dış hizmetlerin IT mimarisinde entegrasyonu için giderek daha fazla mesaj otobüsü (örneğin, RabbitMQ, Apache Kafka veya NATS) kullanılmaktadır. Bu yaklaşım, eşzamansız etkileşimi gerçekleştirmeye, sistemler arasındaki bağımlılığı azaltmaya ve dayanıklılığı artırmaya olanak tanır.
Uygulama şu adımlara dayanır:
Java'da Kafka'ya bir olay gönderme örneği:
ProducerRecord<String, String> record = new ProducerRecord<>("events.orders", "orderCreated", jsonOrderData); producer.send(record);
Anahtar özellikler:
Mesaj otobüsünün kullanımı veri kaybını önleyebilir mi?
Cevap: Hayır. Teslimat politikalarını (onaylama, mesajların kalıcılığı) ayrı ayrı ayarlamak gerekir ve bazen aracının sınırlamalarını aşmak (örneğin, ağ kesintileri veya kuyrukların aşırı dolması) gerekebilir.
Gönderilen tüm mesajların geldikleri sıraya göre işlenmesi şart mı?
Cevap: Her zaman değil. Sıra garanti edilebilir, ancak bu performansı düşürebilir. Bazı durumlarda işleme sırası önemli değildir ve eşzamansız paralel tüketimi kullanmak daha iyidir.
Entegrasyonu ölçeklendirmek için hizmete mesaj kuyrukları desteği eklemek yeterli mi?
Cevap: Hayır. Ölçeklendirme için parçalara ayırma (shard'lar arasına bölme), grup aboneliği ve tüketicilerin dengeli yüklenmesi üzerinde düşünülmesi gerekir.