Cloud Pub/Sub Servisi ile Tanışalım

İrem Kömürcü
3 min readMar 12, 2022

Cloud teknolojilerinde Pub/Sub servisleri, distributed(dağıtılmış) sistemler için anlık bildirimler ile iletim sağlayan ve büyük bir uygulama sisteminin farklı bölümlerinde asenkron olarak mesaj yayınlayıp bilgi taşıyabilen servislerdir.

Temel yapıda Publisher — Subscriber olarak çalışır. Pub (Publisher) ve Sub (Subscriber) arasında direkt olarak bir iletişim yoktur. Bu sayede bazı bağımlılıklar ortadan kalkar. Farklı diller, farklı istek ve çıktılar Pub/Sub kullanılarak mümkün kılınır. Hızlı ve asenkron şekilde mesajlar iletilir. Google, Amazon gibi Cloud teknolojilerinde sıkça kullanılan ve Cloud sistemleri içerisinde hazır servisleri bulunan bir hizmettir.

Temel yapısında Publisher-Subscriber olarak çalıştığını söylemiştik. Publisher taraf yayın yapan taraf ve mesajlar aracılıyla topic adını verdiğimiz kısma bir yayın yapıyor. Subscriber ise Publisher tarafından gönderilen topici “eğer rolü varsa” istediği zaman çekebiliyor.

Cloud platformlar aracılığıyla büyük uygulamların istediğimiz alanları için etkinleştirilebiliyor. Hazır hizmetlerden biri olduğu için güvenli, asenkron, hızlı ve performansı iyi olan bir pipeline bize sunuluyor.

Source: https://cloud.google.com/pubsub/architecture?hl=it

Şekilde yer alan senaryoda da gördüğümüz gibi tek bir Topic üzerine ileti yapan (publishing) 2 Publisher var. A ve B bizim için iletilen Mesaj. Subscriberlar üzerinden birden fazla mesaj gönderilebiliyor.

Pub/Sub sistemlerden bahsettiğimde akla performans, optimizasyon ve süre konusu gelebilir. Peki mesajlar ile iletim yapan bu servislerde performans özellikleri nasıl işliyor?

Pub/Sub sistemlerde “yük” konusu iyi optimize edilmiş şekilde yürümektedir. Topic sayısı, publisher sayısı, mesaj sayısı, mesajların boyutu, subscriber sayısı gibi kullandığımız bu elementleri yük olarak değerlendirebiliriz. Pub/Sub servisler yük olarak adlandırabileceğimiz konuda iyi performans gösterir ve bu da Pub/Sub sistemleri diğer sistemlerden performans olarak ayırır. Yüke bağlı olarak gecikmeler yaşanmaz.

Gecikme konusunda Pub/Sub sistemlerde iki farklı senaryodan bahsedebiliriz. Yayınlanan bir mesajı depolamak son mesaj gelinceye kadar depolamak, depolama ardından son mesaj ile birlikte Publisher’a haber vererek onaylamak gecikme sebeplerinden biri olabilir. Diğer bir sebep ise yayınlanmış bir mesajın Subscriber’a iletilmesi için geçen süre oluşturur.

Yaralandığım Kaynak [EN]:

Yazı bittikten sonra denk geldiğim için yararlanamadığım ama kesinlikle önerebileceğim kaliteli bir kaynak bırakıyorum. İçerisinde senaryosu ile birlikte bir anlatım var:

Çalışırken kendim için notlar olarak oluşturduğum ve yayınlamaya karar verdiğim bir yazının daha sonuna geldik. Düzenli olarak yazılar yazıp, oluşturduğum cheat-sheetleri paylaşıp, farklı communityler ile sunumlar yapıyorum. Medium’da denk gelmeseniz bile sosyal medyadan takip edebilirsiniz. Hakkımda daha fazla bilgi ve sosyal medya hesaplarıma ulaşmak için web-sitemi ziyaret edebilirsin. Tık tık!

--

--

İrem Kömürcü

Google Developer Expert on Machine Learning | Data Scientist @Deloitte | iremkomurcu.com