folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder Rabbitmq'da 1 Service'in N Adet Yeri Consume Etmesi Hakkında ?



Rabbitmq'da 1 Service'in N Adet Yeri Consume Etmesi Hakkında ?

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TeRRoR
    TeRRoR's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Erkek

    aga seninde kafan karışık belli. bu kadar adam anlayamadık :D


    herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri öğrenmeye çalışmayın. yabancı dil filan öğrenin amq.// s.kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    All hail to Tux
    sandman
    sandman's avatar
    Kayıt Tarihi: 01/Eylül/2005
    Erkek

    Bi sn ben anladım galiba,

    sen farklı servislerden gelen mesajları toplayıp ortak servise bir iş yaptıracaksın.

    soru bir bu servislerden gelen verilerin sırası önemli mi?

    soru iki tüm servislerden bilgi gelmeden işleme başlanbilir mi?

    Bakman gereken konu microservice saga mimarileri


    Mühendis kahveyi projeye dönüştüren bir insan evladıdır.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    GodKlaus
    GodKlaus's avatar
    Kayıt Tarihi: 13/Ocak/2014
    Erkek

    yahu hocam neyini anlamadınız :D

     

    örneklendireyim şöyle. 6 tane hoca var. Benim dersini aldığım, bu 6 tane hocadan gelen bildirimleri dinlemek istiyorum.

    Ben ortadaki Mutual-Service'im 6 tane yada N adet öğretmenin bildirimleri dinliyorum.

    6 tane hoca bildirim ekliyor, bende bu bildirimleri herhangi bir routing key vs olmadan direct exchange gibi dinlemek istiyorum.

    Sorun şurada.

    Öğretmen Ahmet : öğrenci adı, öğrenci kodu, sınav puanı    şeklinde bir formatta veri gönderiyor Queue'ya

    Öğretmen Mehmet : öğrenci adı, grup kodu  şeklinde veri yolluyor

    Öğretmen hasan : ders kodu, sınav notu şeklinde gönderiyor.

     

    Ben ortadaki mutual service'im ya, bu adamların farklı şekillerdeki gönderdikleri işleri dinliyorum, JsonDeserialize kısmında ben bir model adı veriyorum ya ( JSonConvert.Deserialize<OgretmenAhmet> gibi bu kısımda N adet hoca gelecek herkesin modeli farklı, N tane alt alta yazsam olmaz, Bunu nasıl halledicem :D

     

    -Hala anlamamış olamazsınız bence :D


    Telegram : @CuneytKuscu && Discord : Tyenuc#2679 | İstanbul Avr. Yazılım Mühendisi ve sonunda işim var (:
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    GodKlaus
    GodKlaus's avatar
    Kayıt Tarihi: 13/Ocak/2014
    Erkek

    Kafanız neden karıştı ya, ben okudum kız arkadaşıma okuttum o da anladı ne istediğimi.

     

    Çok daha mantıklı bir örnek veriyorum.

    Siz bir veterinersiniz. Farklı farklı insanlar size köpek getiriyorlar ama öyle bir dünya düşünün ki köpekleri direk size getirmiyorlar, bir Queue'ya yolluyorlar, sizde elinizdeki iş bitince bu queue'dan sıradaki hayvanı alıp tedavi ediyorsunuz.

    2 tane hayvan sever var, Ayşe ve Fatma. Birisinin kaldığı bölgede çokça köpek bırakılıyor sokağa, diğerinin yaşadığı yerde ise çokça kedi bırakılıyor.

    Birde sizin tedavi edemeğiniz canlıları gönderdiğiniz HASTANE var. Hastanede bu canlılar iyileşip hastanenin kendi QUEUE'suna ekleniyor, sizde gidip bu köpeği yada kediyi alıp Ayşe yada Fatmanın Queuesuna bırakıyorsunuz.

     

    Benim Ayşenin Quesunu dinlediğimde Elime gelen işin içeriği şöyle : KöpekCinsi, KöpekAğırlığı, HastalıkKodu

    Fatmanın Queue'sunu dinlediğimde elime gelen veri şöyle : KediCinsi,KediAğırlığı, BulunduğuYer,SahibiVarMi

    Hastaneyi de dinliyorum Sağlıklı canlılar için : CanlıTürü, CanlıSahipKodu, CanlıAğırlığı, SonDurumu

     

    Şimdii gelelim olaya ; Benim normalde 1 adet consumer'ım vardı. Bu 1 channel'ı dinliyordu. Gelen iş'e bakıyor ve JsonConvert.Deserialize edip bir modele dönüştürüyordu bunu. Fakat benim şimdi 3 adet farklı modelim var.

    Bu yüzden hangi türde(kedi,köpek,hastanedeki havyan) veri geldi bilmiyorum.

    nereden geldiğini de bilmiyorum, Ayşeden 10 tane köpek gelmiştir, Fatmadan 0 tane, Hastaneden 3 tane gelmiştir.

     

    Ben böyle bir durumda 3 tane channel oluşturup 3 tane consumer' mı oluşturmam lazım ? Yoksa 1 consumer ile bu işi çözebilir miyim ?

    Hala anlamamış olamazsınız yaw :D

     


    Telegram : @CuneytKuscu && Discord : Tyenuc#2679 | İstanbul Avr. Yazılım Mühendisi ve sonunda işim var (:
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    All hail to Tux
    sandman
    sandman's avatar
    Kayıt Tarihi: 01/Eylül/2005
    Erkek

    İlk mesajından bu anlaşılmıyor mesela ben kendi çözmeye çalıştığım transaction problemlerine kafam gitti:)

    Ben bu aralar tüm bankanın loglama alt yapısının tekrar yazıldığı bir projeyi yönetiyorum. 100 küsür uygulama var ve hepsinin hem kendi log yapısı farklı hem de eventten evente loglarda değişebiliyor. Doğru yaklaşım bunların hepsini mümkün olduğunca aynı veri modeline dönüştürüp, uymayan kısımları bir fieldda json olarak toplamaktı.
    Örnek: Tüm uygulama loglarında; uygulama adi, channel, transaction id, journey id, timestamp, status, request,responce diye alanlar var. Tüm uygulamalar standart alanları dolduruyor ama request ve responce'u non-structural olarak dolduruyorlar. Böylelikle hepsini alıp bir tablo formatında bir yere yazdırıp full-text search ile istediğimizi buluyoruz.

    Bu bir yaklaşım, bunu uygulamanın amacını ve mantığını bilmeden sana uygun hala getirmem ama bir yere yazacak veya push edip işlem yaptıracaksan channel veya uygulama adından işlemi yakalayıp body içerisindeki json'ı öyle işlersin.

    veya her kuyruk için oturup ayrı bir consumer yazacaksın çünkü ona göre ayrı logicler çalışacak.


    Mühendis kahveyi projeye dönüştüren bir insan evladıdır.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    GodKlaus
    GodKlaus's avatar
    Kayıt Tarihi: 13/Ocak/2014
    Erkek
    sandman bunu yazdı

    İlk mesajından bu anlaşılmıyor mesela ben kendi çözmeye çalıştığım transaction problemlerine kafam gitti:)

    Ben bu aralar tüm bankanın loglama alt yapısının tekrar yazıldığı bir projeyi yönetiyorum. 100 küsür uygulama var ve hepsinin hem kendi log yapısı farklı hem de eventten evente loglarda değişebiliyor. Doğru yaklaşım bunların hepsini mümkün olduğunca aynı veri modeline dönüştürüp, uymayan kısımları bir fieldda json olarak toplamaktı.
    Örnek: Tüm uygulama loglarında; uygulama adi, channel, transaction id, journey id, timestamp, status, request,responce diye alanlar var. Tüm uygulamalar standart alanları dolduruyor ama request ve responce'u non-structural olarak dolduruyorlar. Böylelikle hepsini alıp bir tablo formatında bir yere yazdırıp full-text search ile istediğimizi buluyoruz.

    Bu bir yaklaşım, bunu uygulamanın amacını ve mantığını bilmeden sana uygun hala getirmem ama bir yere yazacak veya push edip işlem yaptıracaksan channel veya uygulama adından işlemi yakalayıp body içerisindeki json'ı öyle işlersin.

    veya her kuyruk için oturup ayrı bir consumer yazacaksın çünkü ona göre ayrı logicler çalışacak.

    Heh hocam bende sanırım bu siyah alan gibi yapıcam, daha önce yaptım. yeni bir channel oluşturdum, yeni bir consumer oluşturdum ve dedim ki YeniConsumer sen sadece hastane kayıtlarını dinleyeceksin,

    Fakat hala anlamadığım bir şekilde hala her hayvanseveri hemde hastaneyi dinliyor  yeni oluşturduğum channel.

     

    GodKlaus tarafından 22/Ara/20 19:57 tarihinde düzenlenmiştir

    Telegram : @CuneytKuscu && Discord : Tyenuc#2679 | İstanbul Avr. Yazılım Mühendisi ve sonunda işim var (:
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    All hail to Tux
    sandman
    sandman's avatar
    Kayıt Tarihi: 01/Eylül/2005
    Erkek

    rappidmq configlerinde hata vardır bir kontrol et, olmadı yeni bir kuyruk yarat.

     


    Mühendis kahveyi projeye dönüştüren bir insan evladıdır.
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    manglerman
    manglerman's avatar
    Kayıt Tarihi: 30/Aralık/2003
    Erkek

    6 farklı queue de 6 farklı tip varsa sıkıntı değil hocam. kaçtane class varsa onların hepsine bir inheritance ekle örnek :BaseClass olabilir bu baseclassta sadece ClassName isimli bir property oluştur. böylece isterse 100 farklı queue ve 100 farklı class olsun sen queueden consume ettiğin objeyi BaseClass ile convert edeceksin. ordan ClassName elinde olacağı için sonrasında ufak bir methodlar hangi class ise ona cast işlemini yapabilrsin. tabi publish ettiğin yerde o classın ne olduğunu bildiğin için ClassName kısmına obje tipinin tam adını yazman lazım.


    türk kızlarından sabun yapalım, rus kızları elini yıkasın.:)
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    tagext
    tagext's avatar
    Üstün Hizmet Madalyası Başarı Madalyası
    Kayıt Tarihi: 25/Temmuz/2002
    Erkek

    Sen bunu tek q ile de yaparsın. Sen gelen mesajın ne olduğunu önce ayırt etmen lazım. Bunun için mesajın header ına bir key ekleyerek mesaj tipğne göre ayrı parserlara gönderebilirsin. Header a göre ferklı q lara da route edebilirsin. Temelde yapman gereken ortak bi mesaj formatı oluşturmak onun body kısmı senin eventine göre değişecek. Bi akşam zoom at konuşalım.


    ftw
Toplam Hit: 3884 Toplam Mesaj: 20
rabbitmq consumer multiple queues