Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 304494|Yanıt: 72

[Kaynak] c# Mesaj kuyruğu MessageQueue'nun kaynak kodu ile kullanımı

  [Bağlantıyı kopyala]
Yayınlandı 14.12.2016 13:51:37 | | | |

MSMQ (Microsoft Mesaj Kuyruğu) ile uygulama geliştiricileri, mesaj gönderip alarak uygulamalarla hızlı ve güvenilir iletişim kurabilirler. Mesaj işleme, garantili mesajlaşma ve birçok iş sürecinin gerçekleştirilmesi için güvenilir bir arıza güvenli yöntemi sunar.

MSMQ, XML Web Services ve .Net Remote gibi, dağıtık bir geliştirme teknolojisidir. Ancak, XML Web Servisleri veya .Net Uzaktan Kumandalama bileşenleri kullanılırken, istemci sunucuyla gerçek zamanlı bilgi alışverişi yapmalıdır ve sunucu çevrimiçi kalmalıdır. MSMQ, sunucu çevrimdışı olduğunda çalışabilir; mesajı geçici olarak istemci tarafındaki mesaj kuyruğuna kaydeder ve çevrimiçi olduğunda işlemiş için sunucuya gönderir.

Elbette, MSMQ istemcinin sunucudan zamanında yanıt vermesi gerektiği ve MSMQ'nun sunucuyla asenkron bir şekilde etkileşime girdiği durumlar için uygun değildir, bu yüzden sunucunun uzun süre işlem yapmasını beklemek zorunda kalmazsınız.



Hem XML Web Services hem de .Net Remoting, asenkron çağrıları işlemek için [OneWay] özelliğini sağlasa da, sunucu tarafında uzun metod çağrılarının istemci tarafını uzun süre engellemesi sorununu çözmek için kullanılır. Ancak, büyük istemci yükü sorununu çözemez ve sunucu, istekleri işleyebildiğinden daha hızlı kabul eder.

Genel olarak, [OneWay] özniteliği özel mesajlaşma servislerinde kullanılmaz.



1. Temel terimler ve kavramlar

"Mesaj", iki bilgisayar arasında iletilen bir veri birimidir. Mesajlar çok basit olabilir, örneğin sadece metin dizeleri içerir; Ayrıca daha karmaşık olabilir ve gömülü nesneler içerebilir.



Mesajlar kuyruğun üzerine gönderilir. "Mesaj kuyruğu", iletim sırasında mesajları tutan bir konteynerdir. Mesaj kuyruk yöneticisi, mesajları kaynağından hedefine ilederken aracı olarak görev yapar. Kuyruğun ana amacı, yönlendirme sağlamak ve mesajların teslim edilmesini garanti etmektir; Alıcı mesaj gönderildiğinde müsait değilse, mesaj kuyruğu mesajı başarıyla iletilene kadar tutar.



"Mesaj Kuyruması", Microsoft Windows yüklü bilgisayarların herhangi bir kombinasyonunda, aynı ağda mı yoksa aynı anda çevrimiçi olup olmalarına bakılmaksızın, mesaj işleme ve mesaj kuyruğu yetenekleri sağlayan Microsoft'un mesaj işleme teknolojisidir.



"Mesaj kuyruğu ağı", birbirlerine mesaj gönderebilen herhangi bir bilgisayar grubudur. Ağdaki farklı bilgisayarlar, mesajların sorunsuz işlemesini sağlamada farklı roller oynar. Bazıları mesaj gönderme şeklini belirlemek için yönlendirme bilgisi sağlar, bazıları tüm ağ hakkında önemli bilgileri içerir, bazıları ise sadece mesaj gönderip alır.



Mesaj Kuyruğu kurulumu sırasında, yöneticiler hangi sunucuların birbirleriyle iletişim kurabileceğini belirler ve belirli sunucular için özel roller belirler. Bu "mesaj kuyrukları" ağını oluşturan bilgisayarlara "site" denir ve birbirlerine "site bağlantıları" ile bağlıdırlar. Her sitelink'in yönetici tarafından belirlenen ve bu sitelink üzerinden ne sıklıkla mesajların iletildiğini gösteren bir "ek yük" vardır.



Mesaj Kuyruğu yöneticisi ayrıca ağda Yönlendirme Sunucusu olarak çalışan bir veya daha fazla bilgisayar kurar. Yönlendirme sunucusu, her sitelinkin yükünü inceleyerek bir mesajı birden fazla site üzerinden nasıl ileteceği için en hızlı ve en verimli yolu belirler.



2. Kuyruk Tipi

İki ana kuyruk türü vardır: ağınızda sizin veya diğer kullanıcıların oluşturduğu kuyruklar ve sistem kuyrukları.

Kullanıcı tarafından oluşturulan bir kuyruk aşağıdakilerden herhangi biri olabilir:

Açık kuyruklar, tüm Mesaj Kuyruğu ağı boyunca çoğaltılır ve ağa bağlı tüm siteler tarafından erişilebilecek potansiyele sahiptir.

Özel kuyruklar ağ genelinde yayınlanmaz. Bunun yerine, sadece bulundukları yerel bilgisayarda kullanılabilirler. Özel kuyruklara yalnızca kuyruğun tam yol adını veya etiketini bilen uygulamalar erişebilir.

Yönetim Kuyrutu, belirli bir Mesaj Kuyruğu ağında gönderilen mesaj alımlarını onaylayan mesajlar içerir. MessageQueue bileşeninin kullanmasını istediğiniz yönetim kuyruğunu belirtin, varsa.

Yanıt Kuyruğu, hedef uygulama mesajı aldığında gönderen uygulamaya geri dönen yanıt mesajlarını içerir. MesajQueue bileşeninin kullanmasını istediğiniz yanıt kuyruğunu belirtin, varsa.



Sistem tarafından oluşturulan kuyruklar genellikle aşağıdaki kategorilere ayrılır:

Journal Queue, gönderilen mesajların ve kuyruğun kaldırılmış kopyalarının kopyalarını isteğe bağlı olarak saklar. Her Mesaj Kuyruğu istemcisindeki tek bir günlük kuyruğu, o bilgisayardan gönderilen mesajların bir kopyasını saklar. Sunucudaki her kuyruk için ayrı bir günlük kuyruğu oluşturulur. Bu günlük, o kuyruğun içinden kaldırılan mesajları takip eder.

Ölü Mektup Kuyruru, teslim edilemeyen veya süresi dolmuş mesajların kopyalarını saklar. Süresi dolan veya teslim edilemeyen bir mesaj işlemselse, "işlemsel ölü hartli kuyruk" adı verilen özel ölü harf kuyrukunda saklanır. Ölü mektuplar, süresi dolmuş mesajın bulunduğu bilgisayarda saklanır. Zaman aşımı ve son kullanma süresi mesajları hakkında daha fazla bilgi için Varsayılan mesaj özellikleri sayfasına bakınız.

Rapor Kuyruğu, mesajın varış noktasına ulaşmak için izlediği güzergahı gösteren mesajlar içerir ve ayrıca test mesajları da içerebilir. Her bilgisayarda yalnızca bir raporlama kuyruğu olabilir.

Özel sistem kuyrutu, bir sistemin mesaj işleme işlemlerini gerçekleştirmesi için ihtiyaç duyduğu yönetim ve bildirim mesajlarını depolayan bir dizi özel kuyruktur.

Uygulamada yapılan işlerin çoğu, halka açık kuyruklara ve mesajlarına erişmeyi içerir. Ancak, uygulamanın günlükleme, onay ve diğer özel işlem ihtiyaçlarına bağlı olarak, günlük işlemlerde birkaç farklı sistem kuyrukunun kullanılması muhtemeldir.



3. Senkron VS. Asenkron İletişim

Kuyruk iletişimi doğası gereği asenkrondur çünkü kuyruğa mesaj göndermek ve mesaj almak farklı süreçlerde gerçekleşir. Ayrıca, alıcı işlemi asenkron olarak gerçekleştirilebilir; çünkü mesajı almak isteyen kişi herhangi bir kuyruğa BeginReceive yöntemini çağırabilir ve hemen cevap beklemeden diğer görevlere devam edebilir. Bu, insanların "eşzamanlı iletişim" olarak bildiği şeyden çok farklıdır.



Eşzamanlı iletişimde, isteği gönderen kişi diğer görevleri yerine getirmeden önce hedeflenen alıcıdan yanıt beklemelidir. Gönderenin beklediği süre, alıcının talebi işlemesi ve cevabı göndermesi için geçen süreye tamamen bağlıdır.



4. Mesaj Kuyruklarıyla Etkileşim

Mesaj işleme ve mesajlaşma, sunucu tabanlı uygulama bileşenleri arasında süreçler arası iletişim için güçlü ve esnek bir mekanizma sağlar. Bileşenler arasında doğrudan çağrıya göre birkaç avantaj sunarlar, bunlar arasında:

İstikrar – Bileşen arızaları, mesajları bileşenler arasındaki doğrudan çağrılardan çok daha az etkiler; çünkü mesajlar bir kuyrukta saklanır ve doğru şekilde işlenene kadar orada kalır. Mesaj işleme, işlem işlemeye benzer; çünkü mesaj işleme garantilidir.
Mesaj önceliklendirmesi – Daha acil veya önemli mesajlar, nispeten önemsiz mesajlardan önce alınabilir, böylece kritik uygulamalar için yeterli yanıt süresi garanti edilebilir.
Çevrimdışı özellik – Mesajlar gönderildiğinde, geçici bir kuyruğa gönderilebilir ve başarılı bir şekilde teslim edilene kadar orada kalabilirler. İstenen kuyruğun erişimi herhangi bir nedenle mümkün olmadığında, kullanıcı eyleme devam edebilir. Aynı zamanda, diğer işlemler mesaj işlenmiş gibi devam edebilir, çünkü ağ bağlantısı geri getirildiğinde mesajın iletimi garanti altına alınır.
İşlemsel mesaj işleme – Mesajların ardışık olarak, sadece bir kez teslim edilmesini ve hedef kuyruğundan başarıyla alınabilmesini sağlamak için birden fazla ilgili mesajı tek bir işlemde birleştirin. Herhangi bir hata olursa, tüm işlem iptal edilir.
Güvenlik – MessageQueue bileşeninin dayandığı mesaj kuyruşu teknolojisi, Windows Güvenliği'ni kullanarak erişim kontrolünü güvence altına alır, denetim sağlar ve bileşen tarafından gönderilen ve alınan mesajları şifreler ve doğrulamalar sağlar.


5. .Net ortamında basit bir mesaj kuyruğu programı yaz

(1) Önce Mesaj Kuyruk Hizmetlerini kur

MSMQ'yu Kontrol Paneli üzerinden "Programları Ekle/Kaldır" – "Windows Bileşenlerini Ekle/Kaldır" adımı üzerinden kurun.

MSMQ hem çalışma grubu modunda hem de alan modunda kurulabilir. Kurulumcu, dizin hizmetleri sağlayan bir mesaj kuyruğu çalıştıran bir sunucu bulamazsa, bu sunucu yalnızca çalışma grubu modunda kurulabilir ve bu bilgisayardaki Mesaj Kuyruğu yalnızca özel kuyrukların oluşturulmasını ve Mesaj Kuyrukları çalıştıran diğer bilgisayarlara doğrudan bağlantılar oluşturulmasını destekler.



(2) MSMQ'yu yapılandırmak

Open Computer Management – Mesaj Kuyruşu ve Özel Kuyruklar altında MSMQDemo kuyruğu oluştur


(3) Kod yazma - sadece MSMQ nesnesini göster

MessageQueue sınıfı, bir "mesaj kuyruğu" etrafında bir örtüdür. MessageQueue sınıfı, Message Queue kuyruğuna bir referans sağlar. MessageQueue oluşturucuda mevcut bir kaynağa yol belirtebilir veya sunucuda yeni bir kuyruk oluşturabilirsiniz. Gönder, Peek veya Receive komutlarını çağırmadan önce, MessageQueue sınıfının yeni bir örneğini mevcut bir kuyruk ile ilişkilendirmeniz gerekir.



MessageQueue, iki tür mesaj alma desteği sunar: senkron ve asenkron. Senkronize Peek ve Receive yöntemleri, işlem iş parçacığının belirli bir aralıkta kuyruk için yeni bir mesajın gelmesini beklemesine neden olur. Asenkron BeginPeek ve BeginReceive yöntemleri, ana uygulama görevinin mesaj kuyruğuna ulaşmadan önce ayrı bir iş parçacığında çalışmaya devam etmesini sağlar. Bu yöntemler, iş parçacıkları arasında bilgi iletişimini kolaylaştırmak için geri çağrı nesneleri ve durum nesneleri kullanarak çalışır.


Kaynak kodu indirme:

Turistler, bu gönderinin gizli içeriğini görmek isterseniz lütfenYanıt





Önceki:15 iyi. .NET
Önümüzdeki:c#/.net, torrent torrentinin hash bilgisinin kaynak kodunu okur
Yayınlandı 13.06.2021 20:54:46 |
TAMAM TAMAM TAMAM TAMAM TAMAM
Yayınlandı 22.02.2019 11:01:34 |
https://download.csdn.net/download/winrich/9585398
Yayınlandı 21.07.2021 11:20:26 |
İyi, iyi
Yayınlandı 21.12.2016 23:04:53 |
Teşekkürler, ev sahibi
Yayınlandı 28.12.2016 19:20:26 |
Bu egzersizi yapmak için şu anda olan bu egzersize göz atın
Yayınlandı 14.07.2017 16:32:06 |
Teşekkürler, ev sahibi。。。。。。。
Yayınlandı 18.10.2017 14:26:45 |
Grup liderlerinden öğrenin
Yayınlandı 24.10.2017 05:39:19 |
Öğren
Yayınlandı 18.11.2017 21:56:57 |
GOOOOOOOOOOOOOAAAAA
Yayınlandı 14.12.2017 14:04:20 |
İyi gönderiler cevaplanmalıdır
Yayınlandı 16.12.2017 21:49:55 |
213123saedwaeas
Yayınlandı 17.12.2017 08:56:11 |
Ne söylendiğine bak
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com