Message Queuing Ağ Yükü Dengeleme üzerinden çalışabiliyor

Bu makalede, Microsoft Message Queuing'in (MSMQ) Ağ Yükü Dengeleme (NLB) üzerinden nasıl çalışabileceği açıklanmaktadır.

Orijinal ürün sürümü: Microsoft Message Queuing
Özgün KB numarası: 899611

Giriş

Aşağıdaki makalede MSMQ'nun NLB üzerinden nasıl çalışabileceği açıklanır. Bu makalede MSMQ'nun olası yanlış yapılandırmaları da ele alınmaktadır.

Önemli

Bu makale, kayıt defterinin nasıl değiştirileceği hakkında bilgiler içerir. Değiştirmeden önce kayıt defterini yedeklemeyi unutmayın. Bir sorun olduğunda kayıt defterinin nasıl geri yükleneceğini bildiğinizden emin olun. Kayıt defterini yedekleme, geri yükleme ve değiştirme hakkında daha fazla bilgi için bkz. Gelişmiş kullanıcılar için Windows kayıt defteri bilgileri.

Desteklenen yapılandırmalar

MSMQ, NLB ortamında aşağıdaki yapılandırmalarda hem ileti göndermek hem de almak için desteklenir:

  • Direct=TCP kullanarak işlem dışı mesajlaşma
  • Doğrulama devre dışı bırakılmış Direct=OS kullanarak işlem dışı mesajlaşma
  • Direct=HTTP kullanarak işlem dışı mesajlaşma
  • Depolama ve iletme sunucularını ve tek bir arka uç sunucusunu kullanan belirli bir yapılandırma kullanarak işlemsel mesajlaşma.

Not

Bu yapılandırmalardan herhangi birinde yalnızca özel kuyruklar desteklenen hedeflerdir. Sanal ağ adında karşılık gelen bir Active Directory dizin hizmeti nesnesi olmadığından, hedef kuyruğun özellikleri sorgulanamaz. Genel kuyruklara standart yol yerine doğrudan biçim adı kullanılarak erişildikçe, ortak kuyruklara ileti gönderebilirsiniz.

Direct=TCP kullanarak işlem dışı mesajlaşma

Bu yapılandırma, belirli bir yapılandırma değişikliği olmadan çalışır.

Direct=OS kullanarak işlem dışı mesajlaşma

Bu yapılandırma yalnızca doğrulama devre dışı bırakıldığında çalışır. Doğrulamayı devre dışı bırakmak için, MSMQ 2.0'da Windows 2000 ve MSMQ 3.0'da windows XP veya Windows Server 2003 ile birlikte aşağıdaki kayıt defteri anahtarını eklemeniz gerekir.

Uyarı

Kayıt Defteri Düzenleyicisi'ni veya başka bir yöntemi kullanarak kayıt defterini hatalı olarak değiştirirseniz önemli sorunlar oluşabilir. Bu sorunlar, işletim sisteminizi yeniden yüklemenizi gerektirebilir. Microsoft, bu sorunların çözülebileceğini garanti edemez. Kayıt defterini değiştirmek kendi sorumluluğunuzdadır. Şu adımları izleyin ve Kayıt Defteri Düzenleyicisi'nden çıkın:

  1. Başlat'ı, ardından Çalıştır'ı tıklatın, regedit yazın ve Tamam'ı tıklatın.
  2. Kayıt defterinde aşağıdaki anahtarı bulun ve tıklatın:
    HKEY_LOCAL_MACHINE\Software\Microsoft\MSMQ\Parameters
  3. Düzen menüsünde Yeni'nin üzerine gelin ve DWORD Değeri'ne tıklayın.
  4. IgnoreOSNameValidation yazın ve ENTER tuşuna basın.
  5. Düzenle menüsünde Değiştir'e tıklayın.
  6. 1 yazın ve Tamam'a tıklayın.

Varsayılan olarak MSMQ, iletinin yerel bilgisayara yönelik olup olmadığını belirlemek için aldığı iletiyi doğrular. İleti yerel bilgisayara yönelik değilse, ileti reddedilir.

Ağ yük dengeleyicinin arkasındaki bir sunucuya ileti gönderildiğinde, ileti yük dengeleyicinin adı veya ağ yük dengeleyicideki sanal IP'ye atanan ağ adı kullanılarak gönderilir. Ardından ağ yük dengeleyici iletiyi bir MSMQ alıcısına yönlendirir. Ancak MSMQ alıcısı üzerindeki yerel Kuyruk Yöneticisi, iletideki bilgisayar adı ve hedef adın eşleşmediğini tanımlar ve Kuyruk Yöneticisi iletiyi atar. Bu kayıt defteri değerini ayarladıktan sonra MSMQ artık hedef bilgisayar adını doğrulamaz ve iletiyi kabul eder.

Direct=HTTP kullanarak işlem dışı mesajlaşma

Bu yapılandırma, belirli bir yapılandırma değişikliği olmadan desteklenir.

Depolama ve iletme sunucularını ve tek bir arka uç sunucusunu kullanan belirli bir yapılandırma kullanarak işlemsel mesajlaşma

Bu yapılandırmada, işlem mesajlaşması yalnızca iletileri alan düğümler alıcı kuyruğu tek bir arka uç sunucusuna eşlediğinde HTTP mesajlaşmasını destekler. Hedef kuyruklar tek tek düğümlerde olduğunda HTTP işlem iletileri desteklenmez.

Bu yapılandırma hakkında daha fazla bilgi için Windows Server 2003 ve Windows XP Professional için Microsoft Message Queuing (MSMQ) HTTP Dağıtım Senaryoları teknik incelemesine bakın.

Hedef kuyrukların bir yük dengeleyicinin arkasındaki her üye düğümünde bulunduğu işlemsel mesajlaşma yapılandırması, aşağıdaki nedenlerle ileti göndermeyi veya almayı desteklemez:

  • Yinelenen iletiler
  • Gönderenlerde tanınmayan iletiler
  • Tamamlanmamış işlemler

İşlem iletileri ve bildirimler

Bir bilgisayar tarafından bir işlem iletisi alındığında, ileti depolama alanına yazılır, ileti günlüğe kaydedilir ve gönderene bir sipariş bildirimi gönderilir. Sipariş bildirimi, özgün iletinin direct=TCP kullanılarak geldiği IP adresine geri gönderilir. Ardından, ileti gönderen tarafından alınır ve ileti giden kuyruktan kaldırılır.

Belirtilen süre içinde gönderen sunucu tarafından bir onay alınmıyorsa, özgün ileti yeniden gönderilir. İleti hedefe ulaştığında, hedef sunucu günlüğü inceler ve sunucunun bu iletiyi zaten aldığını bulur. Bu nedenle, hedef sunucu iletiyi reddeder ve başka bir bildirim gönderir. Hedef sunucu, gönderen tarafından sipariş onayı alınana kadar bildirim göndermeye devam eder. Günlük, yinelenen bir iletinin alınmasını engeller ve sipariş onayı gönderene iletinin alındığını onaylar.

Ağ yük dengeleyicileri ve işlem iletileriyle ilgili sorunlar

Bir ileti bir yük dengeleyici aracılığıyla gönderildiğinde, hedef bilgisayar iletiyi yük dengeleyiciden geliyor olarak görür. Ardından, hedef bilgisayar yeni bir oturum aracılığıyla sipariş onayını gönderir. Bu nedenle, yük dengeleyici bir Web sunucusu veya benzer bir hizmet için durumu korumak için aynı mantığı kullanamaz.

Bu senaryoda en yaygın sorun, birkaç sunucunun yük dengeleyici üzerinden ileti göndermesi, ancak tüm sipariş onaylarının yanlış sunucuya gönderilmesidir. Bu davranış, bilgisayar gönderme işleminin giden kuyruğunda tanınmayan iletilerin oluşturulmasına neden olur. Ayrıca, sipariş bildirimi gönderen tarafından alınmadığında, gönderen iletiyi yeniden gönderir. İkincisi, iletiyi yük dengeleyici aracılığıyla göndermeye çalışmak iletiyi farklı bir bilgisayara gönderebilir. Bu bilgisayar bu iletiyi daha önce görmemiş olacak ve ileti yeni bir ileti olarak işlenecek. doğrulamanın, iletilerin NLB boyunca hareket etmelerine izin vermek için devre dışı bırakıldığını unutmayın.

Bir yük dengeleyici üzerinden gönderilen bir ileti, bir sipariş onayı alınmadan önce yük dengeleyicinin arkasındaki tüm sunucular tarafından bir kez alınabilir ve işlenebilir. Ayrıca, birkaç iletiye yayılan işlemler her zaman işlenemez veya sırayla ulaşılamaz. Bu nedenle, NLB kullandığınızda MSMQ işlem iletileri göndermeyi desteklemez.