Azure Service Bus nedir?

Azure Service Bus, ileti kuyrukları ve yayımlama-abone olma konuları (ad alanında) ile tam olarak yönetilen bir kurumsal ileti aracısıdır. Service Bus, uygulamaları ve hizmetleri birbirinden ayırarak aşağıdaki avantajları sağlamak için kullanılır:

  • Rakip çalışanlarda yük dengeleme işi
  • Hizmet ve uygulama sınırları arasında verileri ve denetimi güvenli bir şekilde yönlendirme ve aktarma
  • Yüksek düzeyde güvenilirlik gerektiren işlemsel çalışmayı koordine etme

Not

Azure mesajlaşma hizmetlerinin karşılaştırması için bkz. Azure mesajlaşma hizmetleri arasında seçim yapma - Event Grid, Event Hubs ve Service Bus.

Genel Bakış

Veriler, farklı uygulamalar ve hizmetler arasında iletiler kullanılarak aktarılır. İleti, meta verilerle süslenmiş bir kapsayıcıdır ve verileri içerir. Veriler, aşağıdakiler gibi yaygın biçimlerle kodlanmış yapılandırılmış veriler de dahil olmak üzere her türlü bilgi olabilir: JSON, XML, Apache Avro, Düz Metin.

Yaygın olarak kullanılan bazı mesajlaşma senaryoları:

  • Mesajlaşma. Satış veya satınalma siparişleri, günlükler veya stok hareketleri gibi iş verilerini aktar.

  • Uygulamaları ayırma. Uygulamaların ve hizmetlerin güvenilirliğini ve ölçeklenebilirliğini geliştirin. Üretici ve tüketicinin aynı anda çevrimiçi veya hazır olması gerekmez. Trafik ani artışlarının bir hizmeti aşmaması için yük dengeleme yapılır.

  • Yük dengeleme. Birden çok rakip tüketicinin bir kuyruktan aynı anda okumasına izin verin ve her biri belirli iletilere özel sahiplik elde eder.

  • Konular ve abonelikler. Yayımcılar ve aboneler arasında 1:n ilişkileri etkinleştirerek abonelerin yayımlanan bir ileti akışından belirli iletileri seçmesine olanak tanır.

  • İşlemler. Tümü atomik işlem kapsamında çeşitli işlemler yapmanıza olanak tanır. Örneğin, bir işlem kapsamında aşağıdaki işlemler yapılabilir.

    1. Bir kuyruktan ileti alma.
    2. İşlem sonuçlarını bir veya daha fazla farklı kuyruğa gönderin.
    3. Giriş iletisini özgün kuyruktan taşıyın.

    Sonuçlar yalnızca giriş iletisinin başarılı bir şekilde düzeltilmesi de dahil olmak üzere yalnızca başarılı olduğunda aşağı akış tüketicileri tarafından görülebilir hale gelir ve yalnızca bir kez işleme semantiğine olanak sağlar. Bu işlem modeli, daha büyük çözüm bağlamında telafi işlemleri düzeni için sağlam bir temeldir.

  • İleti oturumları. Katı ileti sıralaması veya ileti ertelemesi gerektiren iş akışlarının ve çoğullamalı aktarımların yüksek ölçekli koordinasyonu uygulayın.

Apache ActiveMQ gibi diğer ileti aracılarını biliyorsanız, Service Bus kavramları bildiğinize benzer. Service Bus bir hizmet olarak platform (PaaS) teklifi olduğundan, önemli bir fark aşağıdaki eylemler konusunda endişelenmeniz gerekmemesinden kaynaklanır. Azure bu işleri sizin için halleder.

  • Donanım hataları hakkında endişelenme
  • İşletim sistemlerini veya ürünleri düzeltme eki uygulama
  • Günlükleri yerleştirme ve disk alanını yönetme
  • Yedeklemeleri işleme
  • Yedek makineye yük devretme

Kavramlar

Bu bölümde Service Bus ile ilgili temel kavramlar ele alınmaktadır.

Kuyruklar

İletiler kuyruklara gönderilir ve bunlardan alınır. Kuyruklar, alıcı uygulama bunları almak ve işlemek için kullanılabilir olana kadar iletileri depolar.

Queue

Kuyruklardaki iletiler sipariş edilir ve varışta zaman damgası eklenir. Aracı tarafından kabul edildikten sonra, ad alanı alanlar etkinleştirilmişse ileti her zaman üç yedekli depolama alanında bekletilir ve kullanılabilirlik alanlarına yayılır. Service Bus, istemciye kabul edildikleri bildirildikten sonra iletileri hiçbir zaman bellekte veya geçici depolamada bırakmaz.

İletiler çekme modunda teslim edilir, yalnızca istendiğinde ileti teslim edilir. Diğer bazı bulut kuyruklarının meşgul yoklama modelinin aksine, çekme işlemi uzun ömürlü olabilir ve yalnızca bir ileti kullanılabilir olduğunda tamamlanabilir.

Not

Service Bus kuyruklarının Depolama kuyruklarıyla karşılaştırması için bkz. Depolama kuyrukları ve Service Bus kuyrukları - karşılaştırmalı ve karşıt.

Konu başlıkları

İleti göndermek ve almak için konu başlıklarını da kullanabilirsiniz. Bir kuyruk genellikle noktadan noktaya iletişim için kullanılır, buna karşın konu başlıkları yayımlama/abone olma senaryolarında yararlıdır.

Topic

Konu başlıkları, konuya ek olarak alıcı tarafındaki kuyruklar gibi çalışan birden çok bağımsız aboneliğe sahip olabilir. Bir konu başlığının bir abonesi konu başlığına gönderilen her iletinin bir kopyasını alabilir. Abonelikler adlandırılmış varlıklardır. Abonelikler varsayılan olarak dayanıklıdır, ancak süresi dolacak şekilde yapılandırılabilir ve ardından otomatik olarak silinebilir. Service Bus Premium, Java İleti Hizmeti (JMS) API'sini kullanarak bağlantı süresi boyunca var olan geçici abonelikler oluşturmanıza da olanak tanır.

Bir abonelikte kurallar tanımlayabilirsiniz. Abonelik kuralı, iletinin aboneliğe kopyalanması için bir koşul ve ileti meta verilerini değiştirebilen isteğe bağlı bir eylem tanımlamak için bir filtreye sahiptir. Daha fazla bilgi için bkz . Konu filtreleri ve eylemleri. Bu özellik aşağıdaki senaryolarda yararlıdır:

  • Aboneliğin bir konuya gönderilen tüm iletileri almasını istemezsiniz.
  • Abonelikten geçen iletileri ek meta verilerle işaretlemek istiyorsunuz.

Not

Kuyruklar ve konular hakkında daha fazla bilgi için bkz. Service Bus kuyrukları, konuları ve abonelikleri.

Ad alanları

Ad alanı, tüm mesajlaşma bileşenleri (kuyruklar ve konular) için bir kapsayıcıdır. Birden çok kuyruk ve konu tek bir ad alanında olabilir ve ad alanları genellikle uygulama kapsayıcıları olarak görev alır.

Ad alanı, diğer aracıların terminolojisindeki bir sunucuyla karşılaştırılabilir, ancak kavramlar doğrudan eşdeğer değildir. Service Bus ad alanı, onlarca tüm etkin sanal makineden oluşan büyük bir kümenin kendi kapasite dilimidir. İsteğe bağlı olarak üç Azure kullanılabilirlik alanına yayılabilir. Böylece ileti aracısını muazzam ölçekte çalıştırmanın tüm kullanılabilirlik ve sağlamlık avantajlarını elde edersiniz. Ayrıca, temel karmaşıklıklar konusunda endişelenmenize gerek yoktur. Service Bus sunucusuz mesajlaşmadır.

Gelişmiş özellikler

Service Bus ayrıca daha karmaşık mesajlaşma sorunlarını çözmenizi sağlayan gelişmiş özelliklere de sahiptir. Aşağıdaki bölümlerde bu başlıca özellikler açıklanmaktadır:

İleti oturumları

Service Bus'ta ilk giren ilk çıkar ilkesinin (FIFO) kullanılmasını garantilemek için oturumlar kullanın. İleti oturumları, sınırsız sayıda birbiriyle ilgili iletinin birlikte ve düzenli olarak işlenmesini sağlar.

Otomatik iletme

Otomatik iletme özelliği, bir kuyruk veya aboneliği aynı ad alanında olan başka bir kuyruk veya konu başlığına zincirleme eklemenize olanak tanır. Otomatik iletme etkinleştirildiğinde, Service Bus, ilk kuyruğa veya aboneliğe (kaynak) yerleştirilen iletileri otomatik olarak kaldırıp ikinci kuyruğa veya aboneliğe (hedef) yerleştirir.

Ulaşmayan posta

Service Bus, herhangi bir alıcıya teslim edilemeyen veya işlenemeyen iletileri tutmak için bir ulaşmayan posta kuyruğunu (DLQ) destekler. İletileri daha sonra DLQ'dan kaldırabilir ve inceleyebilirsiniz.

Zamanlanmış teslim

Gecikmeli işleme için bir kuyruğa veya konuya ileti gönderebilirsiniz. Örneğin, bir işi belirli bir zamanda bir sistem tarafından işlenmek üzere kullanılabilir olacak şekilde zamanlamak.

İleti erteleme

Bir kuyruk veya abonelik istemcisi işlemeye istekli olduğunu ancak uygulama içindeki özel koşullar nedeniyle şu anda işlenemediği bir ileti aldığında, varlık iletinin alınmasını daha sonraki bir noktaya erteleyebilir. İleti kuyrukta veya abonelikte kalır, ancak ayrılır.

İşlemler

Bir hareket, iki veya daha fazla işlemi tek bir yürütme kapsamında bir araya toplar. Service Bus, bir hareketin kapsamı içindeki işlemlerin (kuyruk, konu başlığı, abonelik gibi) tek bir mesajlaşma varlığına göre gruplanmasını destekler.

Filtreleme ve eylemler

Aboneler, bir konu başlığından hangi iletileri almak istediklerini tanımlayabilir. Bu iletiler, bir veya daha fazla adlandırılmış abonelik kuralı biçiminde belirtilir. Eşleşen her kural koşulu için abonelik, iletinin, her eşleşme kuralı için farklı şekilde açıklama eklenebilecek bir kopyasını üretir.

Boşta beklemede otomatik silme

Boşta beklemede otomatik silme, bittiğinde kuyruğun otomatik olarak silindiği bir boşta bekleme süresi belirtmenizi sağlar. Kuyrukta trafik olduğunda aralık sıfırlanır. En düşük süre 5 dakikadır.

Yineleme algılama

İstemcinin bir gönderme işleminin sonucu hakkında şüpheye neden olan bir hata oluşursa, yinelenen algılama , gönderenin aynı iletiyi yeniden göndermesini sağlayarak bu durumlardan şüpheyi çıkarır ve kuyruk veya konu yinelenen kopyaları atar.

Paylaşılan erişim imzası (SAS), Rol tabanlı erişim denetimi ve yönetilen kimlikler

Service Bus, Paylaşılan Erişim İmzaları (SAS), Rol Tabanlı Erişim Denetimi (RBAC) ve Azure kaynakları için Yönetilen kimlikler gibi güvenlik protokollerini destekler.

Coğrafi olağanüstü durum kurtarma

Azure bölgeleri veya veri merkezleri bir kesinti yaşadığında, Coğrafi olağanüstü durum kurtarma veri işlemenin başka bir bölge veya veri merkezinde devam etmesini olanaklı kılar.

Güvenlik

Service Bus, standart Gelişmiş Message Queuing Protokolü (AMQP) 1.0 ve HTTP/REST protokollerini destekler.

Not

Bu özellikler hakkında daha fazla bilgi için bkz. Azure Service Bus'ın gelişmiş özellikleri.

Standartlar ve protokollerle uyumluluk

Service Bus için birincil kablo protokolü, açık bir ISO/IEC standardı olan Gelişmiş Mesajlaşma Kuyruğa Alma Protokolü (AMQP) 1.0'dır. Müşterilerin Service Bus ve ActiveMQ veya RabbitMQ gibi şirket içi aracılara karşı çalışan uygulamalar yazmasına olanak tanır. AMQP protokol kılavuzu, böyle bir soyutlama oluşturmak istemeniz durumunda ayrıntılı bilgi sağlar.

Service Bus Premium , Java/Jakarta EE Java Message Service (JMS) 2.0 API'siyle tamamen uyumludur. Service Bus Standard da kuyruklara odaklanan JMS 1.1 alt kümesini destekler. JMS, ileti aracıları için yaygın bir soyutlamadır ve popüler Spring çerçevesi de dahil olmak üzere birçok uygulama ve çerçeveyle tümleşir. Diğer aracılardan Azure Service Bus'a geçmek için kuyrukların ve konuların topolojisini yeniden oluşturmanız ve istemci sağlayıcısı bağımlılıklarını ve yapılandırmasını değiştirmeniz yeterlidir. Örnek için bkz . ActiveMQ geçiş kılavuzu.

İstemci kitaplıkları

Tam olarak desteklenen Service Bus istemci kitaplıkları Azure SDK aracılığıyla kullanılabilir.

Azure Service Bus'ın birincil protokolü AMQP 1.0'dır ve herhangi bir AMQP 1.0 uyumlu protokol istemcisinden kullanılabilir. Bazı açık kaynak AMQP istemcileri, Service Bus birlikte çalışabilirliğini açıkça gösteren örneklere sahiptir. Service Bus özelliklerini AMQP 1.0 istemcileriyle doğrudan kullanmayı öğrenmek için AMQP 1.0 protokol kılavuzunu gözden geçirin.

Dil Kitaplık
Java Apache Qpid Proton-J
C/C++ Azure uAMQP C, Apache Qpid Proton-C
Python Python için Azure uAMQP, Apache Qpid Proton Python
PHP PHP için Azure uAMQP
Ruby Apache Qpid Proton Ruby
Go Azure Go AMQP, Apache Qpid Proton Go
C#/F#/VB AMQP .NET Lite, Apache NMS AMQP
JavaScript/Node Rhea dili

Tümleştirme

Service Bus, birçok Microsoft ve Azure hizmetiyle tam olarak tümleştirilir, örneğin:

Sonraki adımlar

Service Bus mesajlaşmasını kullanmaya başlamak için aşağıdaki makalelere bakın: