Genel Bakış
Message Registry Servisi, Logo PaaS platformu içerisinde kayıtlı olan servislerin/uygulamaların birbirleri ile olan iletişiminden sorumludur. Amacı gönderilen mesajların hızlı, kayıpsız ve geriye yönelik sorgulanabilir şekilde iletilmesi sağlamaktadır.
Apache Kafka üzerine kurulmuş olan Message Registry Servisi Publish-Subscribe (Yayın - Abone) modeli mesajlaşma sistemini kullanır. Uygulamalar ilgili kategori abone(Subscribe) olarak ya da abone oldukları kategorilere (Topic) mesaj göndererek mesajlaşma sistemine dahil olurlar.
Message Registry servisine, sahip olduğu swagger üzerinden ya da client dll’leri aracılığıyla erişerek konu kaydetme/silme, atılan mesajlara ya da var olan konulara erişme gibi işlemler yapılabilir.
Kullanım Senaryoları
Mesaj kategorisi tanımlama ve silme
Mesaj kategorilerine erişme
Geçmiş mesajlara erişme
Mesaj içeriğine erişme
Kategori listesine erişme
Teknik Özellikler
Publish-Subscribe Model mesajlaşma sistemi
API Dokümantasyonu
Swagger UI: http://dev-linux.logo-paas.com:5600/api-docs/
Message Registry Konfigürasyon Paneli
Settings UI: http://dev-linux.logo-paas.com:5600/settings/ui/
İlişkişi Platform Servisleri
MongoDB
Apache Kafka
Kategorilere Mesaj Gönderme ve Dinleme Yaşam Döngüsü
- Uygulamalar ilk olarak mesaj yayınladıkları kategorileri(Topic) “categories/register” ucu ile MessageRegistry Servisine kaydeder.
- Dinlemek istenen kategori(Topic), uygulamanın kendi kullandığı Apache Kafka Client’ı ile subscribe olur.
- Uygulama tarafından bir mesaj gönderilmek istediği durumda; “global” isimli kategoriye aşağıdaki formatta bir mesaj göndermesi gerekmektedir.
{
"MessageId": "GUID MessageId",
"ParentMessageId": null,
"CorrelationId": null,
"RootMessageId": "GUID",
"SpanId": null,
"Topic": "mesajın gideceği asıl topic",
"SenderAppId": "Guid SenderAppId",
"Payload": "mesaj içeriği bu bölüme gelecek - (URLEncoded JSON)"
}
- MessageRegistry servisi bu mesajı Apache Kafka’dan yakalayıp Payload’u extract ettikten sonra asıl gitmesi gereken kategoriye tekrar göndermektedir.
- Subscribe olunan bir kategoriye(topic) yeni mesaj gelirse Kafka client uygulamayı notify ediyor ve yukarıdaki formatta mesajı iletiyor. (Trafik yoğunluğunu azaltmak için “Payload” alanı çıkarılır.)
- Client’a gelen mesajın içeriğini (“Payload”) okumak için Message Registry Servisinin “messages/id={id}” ucuna gelen id ile çağrıda bulunulur.