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ü


  1. Uygulamalar ilk olarak mesaj yayınladıkları kategorileri(Topic)  “categories/register” ucu ile MessageRegistry Servisine kaydeder.
  2. Dinlemek istenen kategori(Topic), uygulamanın kendi kullandığı Apache Kafka Client’ı ile subscribe olur.
  3. 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)"

    }


  4. MessageRegistry servisi bu mesajı Apache Kafka’dan yakalayıp Payload’u extract ettikten sonra asıl gitmesi gereken kategoriye tekrar göndermektedir.
  5. 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.)
  6. 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.