Service Bus kuyrukları, konu başlıkları ve abonelikleri
Azure Service Bus, güvenilir message queuing ve dayanıklı yayımlama/abone olma iletileri dahil olmak üzere bulut tabanlı, ileti yönelimli bir ara yazılım teknolojilerini destekler. bu aracılı mesajlaşma özellikleri, Service Bus mesajlaşma iş yükünü kullanarak yayımlama-abone olma, zamana bağlı ayırma ve yük dengeleme senaryolarını destekleyen ayrılmış mesajlaşma özellikleri olarak düşünülebilir. Ayrılmış iletişimin birçok avantajı vardır. Örneğin, istemciler ve sunucular gerektiğinde bağlanabilir ve işlemlerini zaman uyumsuz bir biçimde gerçekleştirebilir.
Service Bus 'deki mesajlaşma yeteneklerinin çekirdeğini oluşturan mesajlaşma varlıkları kuyruklar, konular ve abonelikler ve kurallar/eylemlerdir.
Kuyruklar
Kuyruklar, bir veya daha fazla rakip tüketiciye ilk olarak, Ilk çıkar (FIFO) ileti teslimi sunar. Diğer bir deyişle, alıcılar genellikle iletileri kuyruğa eklendikleri sırayla alır ve işler. Ve, her iletiyi yalnızca bir ileti tüketicisi alır ve işler. Kuyrukları kullanmanın önemli bir avantajı, uygulama bileşenlerinin zamana bağlı olarak ayrıştırılmasıyla elde edilir. Diğer bir deyişle, üreticileri (Gönderen) ve tüketiciler (Alıcılar) aynı anda ileti alıp göndermek zorunda kalmaz. Çünkü iletiler kuyrukta durda depolanır. Ayrıca, Producer 'ın, tüketiciden yanıt almaya ve iletileri gönderilmeye devam etmesini beklemek zorunda değildir.
İlgili bir avantaj, üreticileri ve tüketicilerin farklı oranlarda ileti göndermesini ve almasını sağlayan Yük dengelemeye yönelik bir avantajdır. Birçok uygulamada, sistem yükü zamana göre farklılık gösterir. Ancak, her iş birimi için gereken işleme süresi genellikle sabittir. Aracılığıyla Message üreticileri ve bir kuyruğu olan tüketiciler, tüketen uygulamanın yalnızca en yüksek yük yerine ortalama yükü işleyebilmesi gerektiği anlamına gelir. Gelen yük hacmi değiştikçe kuyruğun derinliği artar ve daralır. Bu özellik, uygulama yüküne hizmet vermek için gereken altyapı miktarıyla ilgili olarak doğrudan tasarruf sağlar. Yük arttıkça, kuyruktan okumak için daha fazla çalışan işlemi eklenebilir. Her ileti yalnızca bir çalışan işlemi tarafından işlenir. Ayrıca, bu çekme tabanlı yük dengeleme, çalışan bilgisayarların, en yüksek hızda güç çekme iletilerini işlemesi durumunda bile çalışan bilgisayarların en iyi şekilde kullanılmasını sağlar. Bu düzen, genelde rakip tüketici düzeni olarak adlandırılır.
İleti üreticileri ve tüketiciler arasında ara için kuyrukları kullanmak, bileşenler arasında devralınan bir gevşek bağ sağlar. Üreticileri ve tüketiciler birbirleriyle uyumlu olmadığından, bir tüketici üreticisi üzerinde herhangi bir etkiye gerek kalmadan yükseltilebilir.
Kuyruklar Oluşturma
Azure Portal, PowerShell, CLIveya Kaynak Yöneticisi şablonlarınıkullanarak kuyruklar oluşturabilirsiniz. Ardından, C#, Java, Pythonve JavaScript'te yazılmış istemcileri kullanarak ileti gönderin ve alın.
Alma modları
Service Bus iletileri aldığı iki farklı mod belirtebilirsiniz.
- Al ve Sil. bu modda, Service Bus tüketiciden aldığında, iletiyi tüketildiği gibi işaretler ve tüketici uygulamasına geri döndürür. Bu mod en basit modeldir. Bir hata oluşursa uygulamanın bir iletiyi işlememesi için kabul edebildiği senaryolar için en iyi yöntem kullanılır. Bu senaryoyu anlamak için, tüketicinin alma isteğini yaptığı ve işlemeden önce çöktüğü bir senaryo düşünün. Service Bus ileti tüketildiği gibi işaretlediği için, uygulama yeniden başlatma sırasında iletileri tükemeye başlar. Çökmeden önce tüketildiği iletiyi kaçırır.
- Kilit Özeti. Bu modda, alma işlemi iki aşamalı olur ve bu da eksik iletileri kabul edemediği uygulamaları desteklemeye olanak tanır.
Kullanılacak sonraki iletiyi bulur, diğer tüketicilerin bunu almasını engellemek için bunu kilitler ve sonra iletiyi uygulamaya döndürür.
uygulama iletiyi işlemeyi tamamladıktan sonra, alma işleminin ikinci aşamasını tamamlaması için Service Bus hizmeti ister. Ardından, hizmet iletiyi tüketildiği gibi işaretler.
uygulama bir nedenden dolayı iletiyi işleyemez, iletiyi bırakmak için Service Bus hizmetine istekte bulunabilir. Service Bus, iletinin kilidini açar ve aynı tüketici tarafından ya da başka bir rekabet müşterisi tarafından tekrar alınabilmesini sağlar. İkinci olarak, kilitle ile ilişkili bir zaman aşımı vardır. uygulama, kilit zaman aşımı dolmadan önce iletiyi işleyemezse, Service Bus iletinin kilidini açar ve yeniden alınmak üzere kullanılabilir hale gelir.
uygulama iletiyi tamamladıktan sonra kilitlenirse, ancak iletiyi tamamlamadan Service Bus hizmeti istemden önce, yeniden başlatıldığında iletiyi uygulamaya yeniden dağıtır Service Bus. Bu işlem genellikle en az bir kez işleme olarak adlandırılır. Diğer bir deyişle, her ileti en az bir kez işlenir. Ancak, bazı durumlarda aynı ileti yeniden teslim edilebilir. Senaryonuz yinelenen işleme tolerans oluşturmazsa, yinelemeleri saptamak için uygulamanıza ek mantık ekleyin. Daha fazla bilgi için bkz. yinelenen algılama. Bu özellik tam olarak bir kez işlenirken bilinir.
Not
Bu iki mod hakkında daha fazla bilgi için bkz. alma Işlemlerini kapatma.
Konular ve abonelikler
Sıra, bir iletinin tek bir tüketici tarafından işlenmesine izin verir. Kuyrukların aksine, konular ve abonelikler, Yayımla ve abone ol düzeninde bire çok bir iletişim biçimi sağlar. Çok sayıda alıcıya ölçeklendirilmesi yararlı olur. Her yayımlanan ileti, konuya kayıtlı her abonelik için kullanılabilir hale getirilir. Publisher bir konuya ileti gönderir ve bir veya daha fazla abone, bu aboneliklerde ayarlanan filtre kurallarına bağlı olarak iletinin bir kopyasını alır. Abonelikler, almak istedikleri iletileri kısıtlamak için ek filtreler kullanabilir. Yayımcılar bir konuya ileti gönderdikleri şekilde bir konuya ileti gönderir. Ancak, tüketiciler doğrudan konudan ileti almaz. Bunun yerine, tüketiciler konusunun aboneliklerinden iletiler alırlar. Konu aboneliği, konuya gönderilen iletilerin kopyalarını alan bir sanal kuyruğa benzer. Tüketiciler bir aboneliğden iletileri bir kuyruktan alma yöntemiyle aynı şekilde alırlar.
Bir sıranın ileti gönderme işlevselliği doğrudan bir konuya eşlenir ve ileti alma işlevselliği bir abonelikle eşlenir. Diğer şeyler arasında bu özellik, aboneliklerin kuyruklar ile ilgili bu bölümde daha önce açıklanan desenleri desteklediği anlamına gelir: rekabet eden tüketici, zamana bağlı ayırma, yük dengeleme ve yük dengeleme.
Konu başlıklarını ve abonelikleri oluşturma
Bir konu oluşturmak, önceki bölümde açıklandığı gibi kuyruk oluşturmaya benzer. Azure Portal, PowerShell, CLIveya Kaynak Yöneticisi şablonlarınıkullanarak konular ve abonelikler oluşturabilirsiniz. Ardından, bir konuya ileti gönderin ve C#, Java, Pythonve JavaScript'te yazılmış istemcileri kullanarak aboneliklerden ileti alın.
Kurallar ve eylemler
Birçok senaryoda, belirli özelliklere sahip olan iletiler farklı yollarla işlenmelidir. Bu işlemeyi etkinleştirmek için, istediğiniz özelliklere sahip iletileri bulmak ve ardından bu özelliklerde belirli değişiklikler yapmak üzere abonelikleri yapılandırabilirsiniz. Service Bus abonelikler konuya gönderilen tüm iletileri görirken, bu iletilerin bir alt kümesini yalnızca sanal abonelik kuyruğuna kopyalayabilirsiniz. Bu filtreleme, abonelik filtreleri kullanılarak gerçekleştirilir. Bu değişiklikler, filtre eylemleri olarak adlandırılır. Bir abonelik oluşturulduğunda, iletinin özelliklerinde çalışan bir filtre ifadesi sağlayabilirsiniz. Özellikler, Sistem Özellikleri (örneğin, etiket) ve özel uygulama özellikleri (örneğin, StoreName) olabilir. SQL filter ifadesi bu durumda isteğe bağlıdır. SQL filtresi ifadesi olmadan, bir abonelikte tanımlı herhangi bir filtre eylemi söz konusu abonelik için tüm iletilerde yapılır.
Tam çalışma örneği için GitHub ' deki Topicfilters örneğine bakın.
Filtreler hakkında daha fazla bilgi için bkz. Konu filtreleri ve eylemleri.
Java ileti hizmeti (JMS) 2,0 varlıkları
Aşağıdaki varlıklara Java ileti hizmeti (JMS) 2,0 API 'SI aracılığıyla erişilebilir.
- Geçici kuyruklar
- Geçici konular
- Paylaşılan dayanıklı abonelikler
- Paylaşılmayan dayanıklı abonelikler
- Paylaşılan, dayanıklı olmayan abonelikler
- Paylaşılmayan kalıcı olmayan abonelikler
JMS 2,0 varlıkları ve bunların nasıl kullanılacağıhakkında daha fazla bilgi edinin.
Sonraki adımlar
Azure Service Bus özelliklerini incelemek için istediğiniz dildeki örnekleri deneyin.
- .net için Azure Service Bus istemci kitaplığı örnekleri (en son)
- Java için Azure Service Bus istemci kitaplığı örnekleri (en son)
- Python için Azure Service Bus istemci kitaplığı örnekleri
- JavaScript için Azure Service Bus istemci kitaplığı örnekleri
- TypeScript için Azure Service Bus istemci kitaplığı örnekleri
Aşağıdaki eski .NET ve Java istemci kitaplıkları için örnekler bulun: