{"id":8746,"date":"2022-10-22T21:30:17","date_gmt":"2022-10-22T18:30:17","guid":{"rendered":"https:\/\/globalit.com.tr\/?p=8746"},"modified":"2024-03-20T17:03:26","modified_gmt":"2024-03-20T14:03:26","slug":"olceklenebilir-mesajlasmaya-giris-yayinci-abone-modeli-pub-sub-pattern","status":"publish","type":"post","link":"https:\/\/globalit.com.tr\/olceklenebilir-mesajlasmaya-giris-yayinci-abone-modeli-pub-sub-pattern\/","title":{"rendered":"\u00d6l\u00e7eklenebilir Mesajla\u015fmaya Giri\u015f: Pub\/Sub"},"content":{"rendered":"\r\n
Yay\u0131nc\u0131-Abone Modeli (Pub\/Sub Pattern)<\/strong><\/strong><\/p>\r\n\r\n\r\n\r\n Monolitik uygulamalar\u0131n yerini mikroservis mimarisiyle geli\u015ftirilmi\u015f uygulamalara b\u0131rakmas\u0131, internet \u00fczerinde yeni ileti\u015fim modellerini de beraberinde getirdi. Bir mimari tasar\u0131m deseni olan yay\u0131nc\u0131\/abone modeli de (pub\/sub pattern) \u00f6l\u00e7eklenebilir mesajla\u015fmay\u0131 ve bilgi transferini olanakl\u0131 k\u0131l\u0131yor. Bu yaz\u0131m\u0131zda pub\/sub pattern kavram\u0131n\u0131n ayr\u0131nt\u0131lar\u0131na, avantajlar\u0131na ve kullan\u0131m senaryolar\u0131na odaklanaca\u011f\u0131z.\u00a0<\/em><\/p>\r\n\r\n\r\n\r\n Evrensel internetin \u00f6nc\u00fcs\u00fc say\u0131lan ARPANET, paket da\u011f\u0131tma y\u00f6ntemiyle tek bir ileti\u015fim hatt\u0131 \u00fczerinden birden \u00e7ok makineyle haberle\u015filebilmesinin \u00f6n\u00fcn\u00fc a\u00e7t\u0131. O g\u00fcnden bu yana internet, uzak konumlarda bulunan cihazlar\u0131n ve ki\u015filerin haberle\u015fmesi ve bilgi transferi yapabilmesine arac\u0131 oldu. Bug\u00fcn internet h\u00e2l\u00e2 ayn\u0131 ama\u00e7la kullan\u0131l\u0131yor, fakat \u00f6l\u00e7ekler de\u011fi\u015fti, de\u011fi\u015fiyor.<\/p>\r\n\r\n\r\n\r\n Milyarlarca insan\u0131n internete eri\u015fmesi yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerini de\u011fi\u015ftirirken, yeni ileti\u015fim y\u00f6ntemlerini de beraberinde getiriyor. Monolitik uygulamalar yerini mikroservis mimarisiyle geli\u015ftirilmi\u015f uygulamalara b\u0131rak\u0131yor, veri tabanlar\u0131 bu de\u011fi\u015fimle bulut platformlara ta\u015f\u0131n\u0131yor ve internetin her iki ucunda konumlanan ki\u015fi ve cihazlar\u0131 birbirine ba\u011flayan ileti\u015fim desenleri de bu de\u011fi\u015fime paralel olarak yenileniyor. Yay\u0131nc\u0131\/abone modeli (pub\/sub pattern), \u00f6l\u00e7eklenebilir mesajla\u015fman\u0131n ve internet ileti\u015fiminin merkezindeki modellerden biri olarak \u00f6ne \u00e7\u0131k\u0131yor.\u00a0<\/p>\r\n\r\n\r\n\r\n Google Cloud\u2019un T\u00fcrkiye\u2019deki en eski ve tek Premier i\u015f orta\u011f\u0131 Global IT olarak bu yaz\u0131m\u0131zda yay\u0131nc\u0131\/abone modelini anlatmaya \u00e7al\u0131\u015faca\u011f\u0131z. Pub\/sub pattern\u2019\u0131n tan\u0131m\u0131na, bu desenin kullan\u0131m alanlar\u0131na, nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131na odaklanaca\u011f\u0131z.<\/p>\r\n\r\n\r\n\r\n Yay\u0131nc\u0131\/abone veya pub\/sub mesajla\u015fma kal\u0131b\u0131, mesaj g\u00f6nderen (yay\u0131nc\u0131lar) ve al\u0131c\u0131lar (aboneler) aras\u0131nda, abone olduklar\u0131 konularda ba\u011flant\u0131ya ve \u00f6l\u00e7eklemeye izin veren mesaj al\u0131\u015fveri\u015fi i\u00e7in \u00e7er\u00e7eve sa\u011flayan bir tasar\u0131m kal\u0131b\u0131d\u0131r. Mesajlar, kullan\u0131labilir olduklar\u0131nda bir yay\u0131nc\u0131dan abonelere g\u00f6nderilir. Yay\u0131nc\u0131lar, kanallara (konulara) mesajlar (olaylar) yay\u0131nlar. Aboneler de ilgilendikleri konular i\u00e7in mesaj almak istediklerinde, kay\u0131t olabilirler.\u00a0<\/p>\r\n\r\n\r\n\r\n Bu, internet ileti\u015fiminin temelindeki standart istek\/yan\u0131t modelinden farkl\u0131d\u0131r. Pub\/sub, ger\u00e7ek zamanl\u0131 veri ak\u0131\u015f\u0131 i\u00e7in en uygun \u00e7er\u00e7eveyi sunar ve dinamik a\u011flar\u0131n internet \u00f6l\u00e7e\u011finde olu\u015fturulmas\u0131n\u0131 m\u00fcmk\u00fcn k\u0131lar. Bilgi sistemlerinin \u00f6l\u00e7e\u011fini geni\u015fletme ihtiyac\u0131ndan ortaya \u00e7\u0131kan pub\/sub deseni, mobil ve nesnelerin interneti cihazlar\u0131n\u0131n b\u00fcy\u00fck \u00f6l\u00e7\u00fcde benimsenmesi ve web tabanl\u0131 uygulamalar\u0131n geni\u015flemesiyle, sistemlerin dinamik olarak \u00f6l\u00e7eklenme ihtiyac\u0131na yan\u0131t veren bir mimari yakla\u015f\u0131m sunar.\u00a0<\/p>\r\n\r\n\r\n\r\n Bir telefon santralini d\u00fc\u015f\u00fcnelim. 100 telefon abonesi varsa, telefon santralinde 100 giri\u015f hatt\u0131na ihtiya\u00e7 duyulur ve abone say\u0131s\u0131 artt\u0131k\u00e7a, santralin her yeni abone i\u00e7in yeni bir giri\u015f hatt\u0131 olu\u015fturmas\u0131 gerekir. Statik \u00f6l\u00e7ekleme olarak adland\u0131r\u0131labilecek bu durum, bug\u00fcn\u00fcn ko\u015fullar\u0131yla pek olanakl\u0131 g\u00f6r\u00fcnm\u00fcyor.<\/p>\r\n\r\n\r\n\r\n Buna kar\u015f\u0131l\u0131k bulutta \u00e7al\u0131\u015fan bir telefon sistemi, sunucular\u0131 ve giri\u015f hatlar\u0131n\u0131 trafi\u011fe g\u00f6re tahsis edebilme yetene\u011fine sahip oluyor. Trafikteki de\u011fi\u015fikli\u011fin \u00fcstesinden gelmek i\u00e7in sunucu kaynaklar\u0131n\u0131 art\u0131rabilen veya azaltabilen bu sistem, dinamik \u00f6l\u00e7ekleme yoluyla kaynaklar\u0131 statik \u00f6l\u00e7eklemeye k\u0131yasla daha verimli kullanabiliyor.<\/p>\r\n\r\n\r\n\r\n Pub\/sub mesajla\u015fma modelinde, yay\u0131nc\u0131lar t\u00fcm abonelere do\u011frudan mesaj g\u00f6ndermez; bunun yerine mesajlar, arac\u0131lar \u00fczerinden iletilir. Yay\u0131nc\u0131lar, abonelerin kim oldu\u011funu veya hangi konulara abone olduklar\u0131n\u0131 bilmez. Bu, yay\u0131nc\u0131 ve abone i\u015flemlerinin birbirinden ba\u011f\u0131ms\u0131z olarak \u00e7al\u0131\u015fabildi\u011fi anlam\u0131na gelir. Gev\u015fek ba\u011flant\u0131 (loose coupling) olarak bilinen bu model, geleneksel mesajla\u015fma modellerindeki hizmet ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 ortadan kald\u0131rmaya yarar.\u00a0<\/p>\r\n\r\n\r\n\r\n Yay\u0131nc\u0131\/abone modeli, a\u015f\u0131r\u0131 y\u00fcklenmeye ve gereksiz maliyetlere neden olmadan, son derece dinamik a\u011flar\u0131n b\u00fcy\u00fck \u00f6l\u00e7ekte olu\u015fturulmas\u0131na olanak tan\u0131r. Olay mesajla\u015fmas\u0131, anl\u0131k mesajla\u015fma veya canl\u0131 veri ak\u0131\u015f\u0131 gibi kullan\u0131m alanlar\u0131ndan tercih edilen pub\/sub modeli, i\u015f y\u00fck\u00fc dengeleme ve zaman uyumsuz i\u015f ak\u0131\u015flar\u0131 i\u00e7in de kullan\u0131l\u0131r.\u00a0<\/p>\r\n\r\n\r\n\r\n Basit bir bilgi sistemi, genel olarak \u015fu modeli takip eder: Girdi \u2013 i\u015fleme \u2013 \u00e7\u0131kt\u0131. Bu ak\u0131\u015fta, sistem e\u015fzamanl\u0131 istekleri i\u015flemek i\u00e7in birden fazla giri\u015f ve \u00e7\u0131k\u0131\u015f mod\u00fcl\u00fcne ihtiya\u00e7 duyar. \u00d6te yandan mesajlar\u0131n giri\u015f b\u00f6l\u00fcm\u00fcnden ilgili \u00e7\u0131k\u0131\u015f mod\u00fcl\u00fcne y\u00f6nlendirilmesi de bir sorun te\u015fkil eder.<\/p>\r\n\r\n\r\n\r\n Bu y\u00f6nlendirme problemlerini ortadan kald\u0131rmak i\u00e7in bir adresleme mekanizmas\u0131na ihtiya\u00e7 duyulur. \u0130nternet \u00f6l\u00e7e\u011finde, sistemlerin binlerce, hatta on binlerce e\u015fzamanl\u0131 ileti\u015fim iste\u011fini i\u015flemek durumunda kald\u0131\u011f\u0131 d\u00fc\u015f\u00fcn\u00fcld\u00fc\u011f\u00fcnde, sistemler a\u015fa\u011f\u0131daki problemleri \u00e7\u00f6zmek zorunda kal\u0131r:\u00a0<\/p>\r\n\r\n\r\n\r\n \u25cf\u00a0Y\u00fcksek hacim ve co\u011frafi yay\u0131l\u0131m nedeniyle y\u00fck\u00fcn birden fazla i\u015flem mod\u00fcl\u00fc aras\u0131nda da\u011f\u0131t\u0131lmas\u0131<\/p>\r\n\r\n\r\n\r\n \u25cf\u00a0Mod\u00fcller aras\u0131nda \u00f6nceden tan\u0131mlanm\u0131\u015f adreslemenin yerine getirilmesi<\/p>\r\n\r\n\r\n\r\n Pub\/sub modeli, bu problemleri, insanlar\u0131n ve internete ba\u011fl\u0131 nesnelerin mesajlar\u0131n\u0131 g\u00f6nderebilece\u011fi ve alabilece\u011fi bir veri hatt\u0131 kullanarak \u00e7\u00f6zer. Sosyal a\u011flar\u0131 d\u00fc\u015f\u00fcnelim. Facebook\u2019ta ya da Twitter\u2019da takip\u00e7ilerinize bir payla\u015f\u0131m ula\u015ft\u0131rmak istedi\u011finizde, her birine ayr\u0131 ayr\u0131 g\u00f6nderim yapman\u0131z gerekmez.<\/p>\r\n\r\n\r\n\r\n Bir yay\u0131nc\u0131 olarak mesaj\u0131n\u0131z\u0131 tek bir kanaldan iletirsiniz ve size abone olanlar, mesaj\u0131n\u0131z\u0131 g\u00f6r\u00fcr. Ka\u00e7 takip\u00e7iniz oldu\u011funu, bu takip\u00e7ilerle ileti\u015fim kurulmas\u0131 i\u00e7in nas\u0131l bir yol izlendi\u011fini bilmeniz gerekmez. Zira pub\/sub modeli bunu sizin yerinize yapar.\u00a0<\/p>\r\n\r\n\r\n\r\n Bu sorunun yan\u0131t\u0131n\u0131n bir b\u00f6l\u00fcm\u00fcn\u00fc yukar\u0131da, \u00f6l\u00e7eklenebilirlikten s\u00f6z etti\u011fimiz alanlarda verdi\u011fimizi d\u00fc\u015f\u00fcn\u00fcyoruz. Elbette pub\/sub pattern, bunun \u00f6tesinde avantajlar da sunuyor. Bu avantajlar\u0131 a\u015fa\u011f\u0131da maddeliyoruz.\u00a0<\/p>\r\n\r\n\r\n\r\n Yay\u0131nc\u0131lar i\u00e7in daha az sorumluluk:<\/strong> Mesajlar\u0131n\u0131 kitlelere ula\u015ft\u0131rmak isteyen yay\u0131nc\u0131lar, yay\u0131nlama mod\u00fclleri olu\u015ftururken abonelikleri d\u00fc\u015f\u00fcnmek durumunda de\u011fildir. Yay\u0131nc\u0131, abonelerin say\u0131s\u0131, kimli\u011fi veya mesaj t\u00fcrleri hakk\u0131nda hi\u00e7bir bilgisi olmadan da, yaln\u0131zca API arac\u0131l\u0131\u011f\u0131yla do\u011fru veri \u00e7\u0131kt\u0131lar\u0131n\u0131 sunmaktan sorumludur. Bir de\u011fi\u015fiklik ya\u015fand\u0131\u011f\u0131nda, model bu de\u011fi\u015fikli\u011fi ve yeni de\u011feri ilgili abonelere ula\u015ft\u0131r\u0131r.\u00a0<\/p>\r\n\r\n\r\n\r\n Aboneler i\u00e7in daha az y\u00fck:<\/strong> Pub\/sub pattern, yay\u0131n\u0131\/abone ili\u015fkisinde iki taraf\u0131nda sorumluluklar\u0131n\u0131 API\u2019a devreder. Yay\u0131nc\u0131lar teknik ayr\u0131nt\u0131lar\u0131 d\u00fc\u015f\u00fcnmek durumunda kalmad\u0131klar\u0131 gibi, abonelerin de yay\u0131nc\u0131lar\u0131n i\u00e7 i\u015fleyi\u015flerine dair d\u00fc\u015f\u00fcnmelerine gerek kalmaz. Aboneler, yaln\u0131zca yay\u0131nc\u0131n\u0131n herkese a\u00e7\u0131k API\u2019\u0131n\u0131 kullanarak ileti\u015fim kurabilir.\u00a0<\/p>\r\n\r\n\r\n\r\n Ger\u00e7ek zamanl\u0131 ileti\u015fim:<\/strong> Pub\/sub, \u201cpush\u201d tabanl\u0131 da\u011f\u0131t\u0131m arac\u0131l\u0131\u011f\u0131yla mesajlar\u0131 aboneleri an\u0131nda ileterek, b\u00fcy\u00fck \u00f6l\u00e7\u00fcde ger\u00e7ek zamanl\u0131 ileti\u015fim gereksinimleri i\u00e7in ideal se\u00e7ene\u011fi sunar.\u00a0<\/p>\r\n\r\n\r\n\r\n Artan \u00f6l\u00e7eklenebilirlik ve g\u00fcvenilirlik:<\/strong> Pub\/sub mesajla\u015fma modeli, modern internetin temelini olu\u015fturur ve esnek bir \u00e7\u00f6z\u00fcmd\u00fcr. \u00d6nceden belirli say\u0131da yay\u0131nc\u0131 veya abone tan\u0131mlamak gerekmez. Kullan\u0131ma ba\u011fl\u0131 olarak yay\u0131nc\u0131lar ve aboneler gerekli bir konuya eklenebilir. \u00d6rne\u011fin bir konuyu ka\u00e7 ki\u015finin takip etti\u011fi pub\/sub deseninde \u00f6nemsizdir, zira bu model, t\u00fcm al\u0131c\u0131lara e\u015fzamanl\u0131 g\u00f6nderimi vaat eder.<\/p>\r\n\r\n\r\n\r\n Geli\u015ftirme kolayl\u0131\u011f\u0131:<\/strong> Pub\/sub, programlama diline, protokole veya belirli bir teknolojiye ba\u011fl\u0131 olmadan kolayca entegre edilebilir. Ayr\u0131ca bu model, farkl\u0131 diller kullan\u0131larak olu\u015fturulan bile\u015fenler aras\u0131nda ileti\u015fimi sa\u011flamak i\u00e7in bir k\u00f6pr\u00fc g\u00f6revi de \u00fcstlenir.\u00a0<\/p>\r\n\r\n\r\n\r\n Ayr\u0131lm\u0131\u015f\/gev\u015fek ba\u011flanm\u0131\u015f bile\u015fenler:<\/strong> Pub\/sub, ileti\u015fim ve uygulama mant\u0131\u011f\u0131n\u0131 kolayca ay\u0131rmaya, b\u00f6ylece izole bile\u015fenler olu\u015fturmaya olanak tan\u0131r. Bu sayede geli\u015ftiriciler, daha mod\u00fcler, sa\u011flam ve g\u00fcvenli yaz\u0131l\u0131m bile\u015fenleri olu\u015fturabilir. Ayr\u0131ca kod kalitesini ve s\u00fcrd\u00fcr\u00fclebilirli\u011fini iyile\u015ftirebilir.<\/p>\r\n\r\n\r\n\r\n Perakendeden ve teslimat lojisti\u011finden s\u00f6z edelim. Pub\/sub, teslimat lojisti\u011finde yayg\u0131n olarak kullan\u0131lan bir modeldir. Paket teslimatlar\u0131n\u0131n yayg\u0131nla\u015ft\u0131\u011f\u0131 bir d\u00f6nemde lojistik \u015firketlerinin teslimat kaynaklar\u0131n\u0131 daha verimli kullanmas\u0131 gerekir. Teslimat\u0131 optimize etmek i\u00e7in sevk sistemleri, s\u00fcr\u00fcc\u00fclerinin nerede oldu\u011funa dair g\u00fcncel bilgilere ihtiya\u00e7 duyar.<\/p>\r\n\r\n\r\n\r\n Olay tabanl\u0131 pub\/sub mesajla\u015fma, lojistik \u015firketlerine bu yetene\u011fi kazand\u0131r\u0131r. S\u00fcr\u00fcc\u00fclerin konum bilgilerine ger\u00e7ek zamanl\u0131 eri\u015febilen merkez ofisler, var\u0131\u015f zamanlar\u0131n\u0131 daha iyi tahmin edebilir ve y\u00f6nlendirme \u00e7\u00f6z\u00fcmleri geli\u015ftirebilir.<\/p>\r\n\r\n\r\n\r\n Ayr\u0131ca pub\/sub, iptallerin, yeni sipari\u015flerin bildirilmesinde de kullan\u0131l\u0131r. B\u00f6yle bir sistemde herkes, kendisini ilgilendiren konuya abone olur. S\u00fcr\u00fcc\u00fcler trafik ve rota bilgilerine abone olabilirken, sevkiyat ve ERP sistemleri tamamlanm\u0131\u015f teslimat g\u00fcncellemelerinden abone olabilir. Takip ve sevk sistemleri ise canl\u0131 konum g\u00fcncellemelerini takip edebilir.\u00a0<\/p>\r\n\r\n\r\n\r\n Pub\/sub pattern, bu gibi operasyonlar\u0131n yan\u0131 s\u0131ra anl\u0131k mesajla\u015fma, veri ak\u0131\u015f\u0131, i\u015f y\u00fck\u00fc dengeleme ve e\u015fzamans\u0131z i\u015f ak\u0131\u015flar\u0131 gibi kullan\u0131m senaryolar\u0131nda da tercih edilir.<\/p>\r\n\r\n\r\n\r\n Global IT olarak yay\u0131nc\u0131\/abone deseninin farkl\u0131 sekt\u00f6rlerdeki farkl\u0131 i\u015fletmeler i\u00e7in nas\u0131l kullan\u0131laca\u011f\u0131na dair y\u0131llara dayanan deneyimimizle i\u015fletmelerin yan\u0131nda oluyoruz. 16 y\u0131ld\u0131r Google Cloud \u00e7\u00f6z\u00fcmlerine odaklan\u0131yor, Google\u2019\u0131n i\u015fletmelerin bulutta b\u00fcy\u00fcmesini olanakl\u0131 k\u0131lan \u00e7\u00f6z\u00fcmlerini kusursuz bir bi\u00e7imde m\u00fc\u015fterilerimize ula\u015ft\u0131r\u0131yoruz. Yat\u0131r\u0131m geri d\u00f6n\u00fc\u015flerini k\u0131sa s\u00fcrede alan m\u00fc\u015fterilerimizle her projede ba\u015fka bir ba\u015far\u0131 hikayesine imza at\u0131yor, Google Cloud \u00e7\u00f6z\u00fcm ailesinin sundu\u011fu avantajlar\u0131 i\u015fletme ihtiya\u00e7lar\u0131na g\u00f6re uyarl\u0131yoruz.\u00a0<\/p>\r\n\r\n\r\n\r\n Veri analiti\u011fi ba\u015fl\u0131\u011f\u0131 alt\u0131nda sundu\u011fumuz Google Cloud Pub\/Sub ile ilgili daha fazla bilgi almak ve Global IT\u2019nin bulut d\u00f6n\u00fc\u015f\u00fcm\u00fcn\u00fcz i\u00e7in yapabileceklerini ke\u015ffetmek isterseniz, bizimle bu sayfan\u0131n alt\u0131nda yer alan formu kullanarak ileti\u015fime ge\u00e7ebilirsiniz.<\/p>\r\n","protected":false},"excerpt":{"rendered":" Yay\u0131nc\u0131-Abone Modeli (Pub\/Sub Pattern) Yay\u0131nc\u0131\/Abone (Pub\/Sub Pattern) Modeli Nedir?\u00a0 Monolitik uygulamalar\u0131n yerini mikroservis mimarisiyle geli\u015ftirilmi\u015f…<\/p>\n","protected":false},"author":1,"featured_media":8848,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[58],"tags":[],"class_list":{"0":"post-8746","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-genel-teknoloji-ve-inovasyon"},"acf":[],"yoast_head":"\nYay\u0131nc\u0131\/Abone (Pub\/Sub Pattern) Modeli Nedir?\u00a0<\/h2>\r\n\r\n\r\n\r\n
Pub\/sub pattern nedir?\u00a0<\/h2>\r\n\r\n\r\n\r\n
Pub\/sub pattern nas\u0131l \u00e7al\u0131\u015f\u0131r?\u00a0<\/h2>\r\n\r\n\r\n\r\n
Yay\u0131nc\u0131\/abone modelinin avantajlar\u0131 nelerdir?\u00a0<\/h2>\r\n\r\n\r\n\r\n
Pub\/sub pattern kullan\u0131m senaryolar\u0131<\/h2>\r\n\r\n\r\n\r\n
Yay\u0131nc\u0131\/abone modelinin ayr\u0131nt\u0131lar\u0131n\u0131 ve Google Pub\/Sub\u2019\u0131 Global IT ile ke\u015ffedin<\/h2>\r\n\r\n\r\n\r\n