Mi az Azure Service Bus?What is Azure Service Bus?

A Microsoft Azure Service Bus egy teljes körűen felügyelt vállalati üzenetsor az üzenetsor-kezelés és a közzététel – előfizetés témakörökben.Microsoft Azure Service Bus is a fully managed enterprise message broker with message queues and publish-subscribe topics. Service Bus az alkalmazások és szolgáltatások egymástól való elválasztására szolgálnak, a következő előnyöket biztosítva:Service Bus is used to decouple applications and services from each other, providing the following benefits:

  • Terheléselosztási munka a versengő feldolgozók közöttLoad-balancing work across competing workers
  • Biztonságos Útválasztás és adatátvitel és vezérlés a szolgáltatás és az alkalmazások határai közöttSafely routing and transferring data and control across service and application boundaries
  • Magas fokú megbízhatóságot igénylő tranzakciós munka koordinálásaCoordinating transactional work that requires a high-degree of reliability

ÁttekintésOverview

Az adatok különböző alkalmazások és szolgáltatások közötti átvitele az üzenetek segítségével történik.Data is transferred between different applications and services using messages. Az üzenet egy metaadatokkal díszített tároló, amely adatokat tartalmaz.A message is a container decorated with metadata, and contains data. Az adatok bármilyen típusú információval rendelkezhetnek, beleértve a közös formátumokkal kódolt strukturált adatokat is, például a következő esetekben: JSON, XML, Apache Avro, egyszerű szöveg.The data can be any kind of information, including structured data encoded with the common formats such as the following ones: JSON, XML, Apache Avro, Plain Text.

Néhány gyakori üzenetküldési forgatókönyv:Some common messaging scenarios are:

  • Üzenetküldés.Messaging. Üzleti adatok (például értékesítési vagy beszerzési rendelések, naplók vagy leltározási mozgások) továbbítása.Transfer business data, such as sales or purchase orders, journals, or inventory movements.

  • Alkalmazások leválasztása.Decouple applications. Az alkalmazások és szolgáltatások megbízhatóságának és méretezhetőségének javítása.Improve reliability and scalability of applications and services. A gyártónak és a fogyasztónak nem kell online vagy azonnal elérhetőnek lennie.Producer and consumer don't have to be online or readily available at the same time. A terhelést úgy kell megterhelni , hogy a forgalmi tüskék ne túladóztat meg a szolgáltatást.The load is leveled such that traffic spikes don't overtax a service.

  • Terheléselosztás.Load Balancing. Lehetővé teszi több versengő fogyasztó számára, hogy egy várólistából is beolvassák a kizárólagos tulajdonosi jogokat bizonyos üzenetekhez.Allow for multiple competing consumers to read from a queue at the same time, each safely obtaining exclusive ownership to specific messages.

  • Témakörök és előfizetések.Topics and subscriptions. 1:n kapcsolatok engedélyezése a közzétevők és az előfizetőkközött, amely lehetővé teszi, hogy az előfizetők kiválasszák az adott üzeneteket a közzétett üzenet-adatfolyamból.Enable 1:n relationships between publishers and subscribers, allowing subscribers to select particular messages from a published message stream.

  • Tranzakciók.Transactions. Lehetővé teszi, hogy több műveletet végezzen el, amelyek mindegyike egy atomi tranzakció hatókörében van.Allows you to do several operations, all in the scope of an atomic transaction. Például a következő műveletek hajthatók végre egy tranzakció hatókörében.For example, the following operations can be done in the scope of a transaction.

    1. Üzenet beszerzése egy várólistából.Obtain a message from one queue.
    2. Egy vagy több várólistára történő feldolgozás eredményeinek közzététele.Post results of processing to one or more different queues.
    3. Helyezze át a bemeneti üzenetet az eredeti várólistából.Move the input message from the original queue.

    Az eredmények az alsóbb rétegbeli fogyasztók számára csak a siker után válnak láthatóvá, beleértve a bemeneti üzenet sikeres rendezését is, amely lehetővé teszi a csak egyszer feldolgozható szemantikai műveletek elvégzését.The results become visible to downstream consumers only upon success, including the successful settlement of input message, allowing for once-only processing semantics. Ez a tranzakciós modell robusztus alap a kompenzáló tranzakciók mintája számára a nagyobb megoldási környezetben.This transaction model is a robust foundation for the compensating transactions pattern in the greater solution context.

  • Üzenet-munkamenetek.Message sessions. Nagy léptékű koordinációt valósíthat meg a munkafolyamatok és a többszintű, a szigorú üzenetek rendezését vagy az üzenetek késleltetését igénylő átvitelek esetében.Implement high-scale coordination of workflows and multiplexed transfers that require strict message ordering or message deferral.

Ha már ismeri a más üzenet-közvetítőket, például az Apache ActiveMQ-t, Service Bus fogalmak hasonlóak ahhoz, amit tud.If you're familiar with other message brokers like Apache ActiveMQ, Service Bus concepts are similar to what you know. Mivel a Service Bus a szolgáltatásként nyújtott platform ("a"), a fő különbség az, hogy nem kell aggódnia a következő műveletekkel kapcsolatban.As Service Bus is a platform-as-a-service (PaaS) offering, a key difference is that you don't need to worry about the following actions. Az Azure gondoskodik az Ön számára.Azure takes care of those chores for you.

  • Naplók elhelyezése és a lemezterület kezelésePlacing logs and managing disk space
  • Biztonsági másolatok feldolgozásaHandling backups
  • Az operációs rendszerek vagy a termékek javításának megtartásaKeeping the operating systems or the products patched
  • Problémák a hardverhiba miattWorrying about hardware failures
  • Feladatátvétel a tartalék gépreFailing over to a reserve machine

Megfelelőség a szabványokkal és protokollokkalCompliance with standards and protocols

A Service Bus elsődleges átviteli protokollja a speciális üzenetküldési üzenetsor-kezelési protokoll (AMQP) 1,0, egy Open ISO/IEC szabvány.The primary wire protocol for Service Bus is Advanced Messaging Queueing Protocol (AMQP) 1.0, an open ISO/IEC standard. Lehetővé teszi, hogy az ügyfelek olyan alkalmazásokat írjanak, amelyek Service Bus és helyszíni közvetítők, például a ActiveMQ vagy a RabbitMQ használatával működnek.It allows customers to write applications that work against Service Bus and on-premises brokers such as ActiveMQ or RabbitMQ. A AMQP protokoll útmutatója részletes információkat tartalmaz abban az esetben, ha ilyen absztrakciót szeretne készíteni.The AMQP protocol guide provides detailed information in case you want to build such an abstraction.

Az Service Bus Premium teljes mértékben megfelel a Java/Jakarta EE Java Message Service (JMS) 2,0 API-nak.Service Bus Premium is fully compliant with the Java/Jakarta EE Java Message Service (JMS) 2.0 API. A és a Service Bus standard a JMS 1,1 részhalmazt is támogatja a várólistákra összpontosítva.And, Service Bus Standard supports the JMS 1.1 subset focused on queues. A JMS az üzenetek közvetítésének közös absztrakciója, és számos alkalmazással és keretrendszerrel integrálható, beleértve a népszerű rugós keretrendszert is.JMS is a common abstraction for message brokers and integrates with many applications and frameworks, including the popular Spring framework. A többi közvetítőtől a Azure Service Busra való váltáshoz csak újra kell létrehoznia a várólisták és a témakörök topológiáját, és módosítania kell az ügyfél szolgáltatójának függőségeit és konfigurációját.To switch from other brokers to Azure Service Bus, you just need to recreate the topology of queues and topics, and change the client provider dependencies and configuration. Példaként tekintse meg a ActiveMQ áttelepítési útmutatót.For an example, see the ActiveMQ migration guide.

Fogalmak és szakkifejezésekConcepts and terminology

Ez a szakasz a Service Bus fogalmakat és terminológiát ismerteti.This section discusses concepts and terminology of Service Bus.

NévterekNamespaces

A névtér az összes üzenetküldési összetevő tárolója.A namespace is a container for all messaging components. Több várólista és témakör is lehet egyetlen névtérben, és a névterek gyakran alkalmazás-tárolóként szolgálnak.Multiple queues and topics can be in a single namespace, and namespaces often serve as application containers.

Egy névtér összehasonlítható más közvetítők terminológiájában lévő "kiszolgálóval", de a fogalmak nem közvetlenül egyenértékűek.A namespace can be compared to a "server" in the terminology of other brokers, but the concepts aren't directly equivalent. A Service Bus névtér egy nagy méretű fürt saját kapacitású szelete, amely több tucat, az összes aktív virtuális gépről készült.A Service Bus namespace is your own capacity slice of a large cluster made up of dozens of all-active virtual machines. Előfordulhat, hogy három Azure-beli rendelkezésre állási zónátis kijelöl.It may optionally span three Azure availability zones. Így az összes rendelkezésre állási és megbízhatósági előnyt élvezheti a nagy léptékű Message Broker futtatásához.So, you get all the availability and robustness benefits of running the message broker at enormous scale. És nem kell aggódnia az alapul szolgáló bonyolultságok miatt.And, you don't need to worry about underlying complexities. Service Bus "kiszolgáló nélküli" üzenetküldés.Service Bus is "serverless" messaging.

ÜzenetsorokQueues

Az üzenetek az üzenetsorokba érkeznek be, és onnan küldi ki őket a rendszer.Messages are sent to and received from queues. A várólisták üzeneteket tárolnak, amíg a fogadó alkalmazás elérhetővé válik a fogadáshoz és a feldolgozáshoz.Queues store messages until the receiving application is available to receive and process them.

Üzenetsor

A várólistákban lévő üzenetek megrendelése és időbélyege az érkezéskor.Messages in queues are ordered and timestamped on arrival. Ha a közvetítő elfogadta ezt az üzenetet, a rendszer mindig tartósan a Triple-redundáns tárolásban, és a rendelkezésre állási zónák között elosztva, ha a névtér zóna engedélyezve van.Once accepted by the broker, the message is always held durably in triple-redundant storage, spread across availability zones if the namespace is zone-enabled. Service Bus soha nem hagy üzeneteket a memóriában vagy a felejtő tárolóban, miután elfogadták őket az ügyfélnek.Service Bus never leaves messages in memory or volatile storage after they've been reported to the client as accepted.

Az üzenetek lekéréses módban lesznek kézbesítve, csak az üzenetek kézbesítését kérik.Messages are delivered in pull mode, only delivering messages when requested. A más Felhőbeli várólisták foglalt lekérdezési modelljétől eltérően a lekéréses művelet hosszú életű lehet, és csak akkor fejeződik be, ha egy üzenet elérhetővé válik.Unlike the busy-polling model of some other cloud queues, the pull operation can be long-lived and only complete once a message is available.

TémakörökTopics

Az üzenetek küldéséhez és fogadásához témaköröket is használhat.You can also use topics to send and receive messages. Amíg egy üzenetsort gyakran használnak közvetlen kommunikációra, addig a témakörök hasznosak a közzétételi/előfizetési forgatókönyvekben.While a queue is often used for point-to-point communication, topics are useful in publish/subscribe scenarios.

Témakör

A témakörök több, független előfizetéssel rendelkezhetnek, amelyek a témakörhöz vannak csatolva, és más módon ugyanúgy működnek, mint a fogadó oldalról származó várólisták.Topics can have multiple, independent subscriptions, which attach to the topic and otherwise work exactly like queues from the receiver side. Egy adott témakör előfizetője az adott témakörben küldött összes üzenetről kaphat másolatot.A subscriber to a topic can receive a copy of each message sent to that topic. Az előfizetések névvel ellátott entitások.Subscriptions are named entities. Az előfizetések alapértelmezés szerint tartósak, de a rendszer úgy konfigurálható, hogy lejárjon, majd automatikusan törölhető legyen.Subscriptions are durable by default, but can be configured to expire and then be automatically deleted. A JMS API-n keresztül a Service Bus Premium lehetővé teszi a kapcsolatok időtartamára vonatkozó illékony előfizetések létrehozását is.Via the JMS API, Service Bus Premium also allows you to create volatile subscriptions that exist for the duration of the connection.

Megadhat szabályokat egy előfizetéshez.You can define rules on a subscription. Egy előfizetési szabály rendelkezik egy szűrővel , amely meghatározza az üzenetnek az előfizetésbe másolandó feltételt, valamint egy opcionális műveletet , amely módosíthatja az üzenetek metaadatait.A subscription rule has a filter to define a condition for the message to be copied into the subscription and an optional action that can modify message metadata. További információ: a szűrők és a műveletektémakör.For more information, see Topic filters and actions. Ez a funkció a következő esetekben hasznos:This feature is useful in the following scenarios:

  • Nem szeretné, hogy egy előfizetés megkapja a témakörbe küldött összes üzenetet.You don't want a subscription to receive all messages sent to a topic.
  • Az előfizetésen keresztül továbbított üzeneteket további metaadatokkal szeretné megjelölni.You want to mark up messages with extra metadata when they pass through a subscription.

Speciális funkciókAdvanced features

A Service Bus olyan speciális funkciókat tartalmaz, amelyek lehetővé teszik összetettebb üzenetkezelési problémák megoldását.Service Bus includes advanced features that enable you to solve more complex messaging problems. A következő szakaszok ismertetik ezeket a funkciókat.The following sections describe several of these features.

Üzenet-munkamenetekMessage sessions

Ha Service Bus-ben szeretne létrehozni egy beérkező, első kimenő (FIFO) garanciát, használja a munkameneteket.To create a first-in, first-out (FIFO) guarantee in Service Bus, use sessions. Az üzenet-munkamenetek lehetővé teszik a kapcsolódó üzenetek nem kötött sorrendjének kizárólagos, rendezett kezelését.Message sessions enable exclusive, ordered handling of unbounded sequences of related messages. A munkamenetek nagy léptékű, magas rendelkezésre állású rendszerekben való kezelésének engedélyezéséhez a munkamenet-szolgáltatás a munkamenet-állapot tárolását is lehetővé teszi, amely lehetővé teszi, hogy a munkamenetek biztonságosan mozogjanak a kezelők között.To allow for handling sessions in high-scale, high-availability systems, the session feature also allows for storing session state, which allows sessions to safely move between handlers. További információ : Message Sessions: First in, First out (FIFO).For more information, see Message sessions: first in, first out (FIFO).

TovábbításAutoforwarding

Az öntovábbító funkció egy várólistát vagy előfizetést egy másik várólistára vagy témakörre, ugyanazon a névtéren belül.The autoforwarding feature chains a queue or subscription to another queue or topic inside the same namespace. Ha ezt a funkciót használja, Service Bus automatikusan áthelyezi az üzeneteket egy várólistából vagy előfizetésből egy célvárólista vagy témakörbe.When you use this feature, Service Bus automatically moves messages from a queue or subscription to a target queue or topic. Minden ilyen lépés tranzakciós műveletet végez.All such moves are done transactionally. További információ: Service Bus entitások Kiláncolása az autoforwarding szolgáltatással.For more information, see Chaining Service Bus entities with autoforwarding.

Kézbesítetlen levelek várólistájaDead-letter queue

Az összes Service Bus várólista és témakör-előfizetéshez tartozik egy kézbesítetlen levelek várólistája (DLQ).All Service Bus queues and topic subscriptions have an associated dead-letter queue (DLQ). A DLQ a következő feltételeknek megfelelő üzeneteket tárolja:A DLQ holds messages that meet the following criteria:

  • A címzettek nem továbbíthatók sikeresen.They can't be delivered successfully to any receiver.
  • Időtúllépés.They timed out.
  • Ezeket a fogadó alkalmazás explicit módon kiszorul.They're explicitly sidelined by the receiving application.

A kézbesítetlen levelek várólistáján lévő üzeneteket a rendszer azt az indoklással láthatja el, hogy miért helyezték el őket.Messages in the dead-letter queue are annotated with the reason why they've been placed there. A kézbesítetlen levelek várólistája speciális végponttal rendelkezik, de más módon úgy viselkedik, mint bármely normál várólista.The dead-letter queue has a special endpoint, but otherwise acts like any regular queue. Egy alkalmazás vagy eszköz böngészhet a DLQ vagy a sorból.An application or tool can browse a DLQ or dequeue from it. A kézbesítetlen levelek várólistáján is elvégezhető a továbbítás.You can also autoforward out of a dead-letter queue. További információ: Service Bus kézbesítetlen levelek várólistáinak áttekintése.For more information, see Overview of Service Bus dead-letter queues.

Ütemezett kézbesítésScheduled delivery

Üzeneteket küldhet egy várólistába vagy egy témakörbe késleltetett feldolgozás céljából, és beállíthatja, hogy mikor legyen elérhető az üzenet a felhasználáshoz.You can submit messages to a queue or topic for delayed processing, setting a time when the message will become available for consumption. Az ütemezett üzenetek is megvonhatók.Scheduled messages can also be canceled. További információ: ütemezett üzenetek.For more information, see Scheduled messages.

Üzenetek halasztásaMessage deferral

Egy üzenetsor vagy előfizetési ügyfél egy későbbi időpontra elhalaszthatja a fogadott üzenetek lekérését.A queue or subscription client can defer retrieval of a received message until a later time. Előfordulhat, hogy az üzenet el lett küldve a várt sorrendben, és az ügyfél meg szeretné várni, amíg egy másik üzenetet kap.The message may have been posted out of an expected order and the client wants to wait until it receives another message. A késleltetett üzenetek a várólistán vagy az előfizetésen belül maradnak, és a szolgáltatáshoz hozzárendelt sorozatszám alapján explicit módon újra kell aktiválni őket.Deferred messages remain in the queue or subscription and must be reactivated explicitly using their service-assigned sequence number. További információ: üzenet halasztása.For more information, see Message deferral.

KötegelésBatching

Az ügyféloldali kötegek lehetővé teszik, hogy egy üzenetsor vagy egy témakör-ügyfél összegyűjtse az üzenetek egy halmazát, és együtt továbbítsa őket.Client-side batching enables a queue or topic client to accumulate a set of messages and transfer them together. Gyakran a sávszélesség megtakarítása vagy az átviteli sebesség növelése érdekében történik.It's often done to either save bandwidth or to increase throughput. További információ: ügyféloldali kötegelt feldolgozás.For more information, see Client-side batching.

TranzakciókTransactions

Egy tranzakció két vagy több műveletet egyesít egy végrehajtási hatókörbe.A transaction groups two or more operations together into an execution scope. Service Bus lehetővé teszi, hogy egyetlen tranzakció hatókörébe eső több üzenetkezelési entitáson belül csoportosítsa a műveleteket.Service Bus allows you to group operations against multiple messaging entities within the scope of a single transaction. Az üzenet entitás lehet üzenetsor, témakör vagy előfizetés.A message entity can be a queue, topic, or subscription. További információkért lásd: Service Bus tranzakciók feldolgozásának áttekintése.For more information, see Overview of Service Bus transaction processing.

Az autodelete inaktív állapotbanAutodelete on idle

Az automatikus törlés üresjáratban beállítással megadhat egy üresjárati időközt, amely után a rendszer automatikusan törli a várólista vagy a témakör előfizetését.Autodelete on idle enables you to specify an idle interval after which a queue or topic subscription is automatically deleted. A minimális érték 5 perc.The minimum duration is 5 minutes.

Duplikálás észleléseDuplicate detection

A duplikált észlelési funkció lehetővé teszi, hogy a küldő újra ugyanazt az üzenetet küldje újra, és a bróker el lehessen dobni a lehetséges duplikált elemeket.The duplicate detection feature enables the sender to resend the same message again and for the broker to drop a potential duplicate. További információ: duplikált észlelés.For more information, see Duplicate detection.

Geo-vészhelyreállításGeo-disaster recovery

Ha egy Azure-régió leállást tapasztal, a vész-helyreállítási funkció lehetővé teszi az adatfeldolgozást, hogy egy másik régióban vagy adatközpontban folytassa a működést.When an Azure region experiences downtime, the disaster recovery feature enables data processing to continue operating in a different region or data center. A szolgáltatás megtartja a másodlagos régióban elérhető névtér szerkezeti tükrözését, és lehetővé teszi, hogy a névtér identitása a másodlagos névtérre váltson.The feature keeps a structural mirror of a namespace available in the secondary region and allows the namespace identity to switch to the secondary namespace. A már közzétett üzenetek a korábbi elsődleges névtérben maradnak, ha a rendelkezésre állási epizódot a rendszer kinyeri.Already posted messages remain in the former primary namespace for recovery once the availability episode subsides. További információ: Azure Service Bus földrajzi katasztrófa utáni helyreállítás.For more information, see Azure Service Bus Geo-disaster recovery.

BiztonságSecurity

Service Bus támogatja a standard AMQP 1,0 , valamint a http-vagy Rest -protokollok és azok biztonsági létesítményei, beleértve a TRANSPORT szintű biztonságot (TLS).Service Bus supports standard AMQP 1.0 and HTTP or REST protocols and their respective security facilities, including transport-level security (TLS). Az ügyfelek a közös hozzáférésű aláírással vagy Azure Active Directory szerepköralapú biztonsággal való hozzáférésre is jogosultak.Clients can be authorized for access using Shared Access Signature or Azure Active Directory role-based security.

A nemkívánatos forgalom elleni védelem érdekében Service Bus olyan biztonsági funkciókat biztosít, mint például az IP-tűzfal és a virtuális hálózatokkal való integráció.For protection against unwanted traffic, Service Bus provides security features such as IP firewall and integration with virtual networks.

ÜgyfélkódtárakClient libraries

Az Azure SDK-n keresztül teljes mértékben támogatott Service Bus ügyféloldali kódtárak érhetők el.Fully supported Service Bus client libraries are available via the Azure SDK.

Azure Service Bus ' az elsődleges protokoll a AMQP 1,0 , és bármely AMQP 1,0-kompatibilis protokoll-ügyfélről használható.Azure Service Bus' primary protocol is AMQP 1.0 and it can be used from any AMQP 1.0 compliant protocol client. Számos nyílt forráskódú AMQP-ügyfél olyan mintákat tartalmaz, amelyek kifejezetten bemutatják Service Bus együttműködési képességet.Several open-source AMQP clients have samples that explicitly demonstrate Service Bus interoperability. Tekintse át a AMQP 1,0 protokoll útmutatóját , amelyből megtudhatja, hogyan használhatja a AMQP 1,0-ügyfeleket közvetlenül a Service Bus funkcióit.Review the AMQP 1.0 protocol guide to understand how to use Service Bus' features with AMQP 1.0 clients directly.

NyelvLanguage KódtárLibrary
JavaJava Apache csontos-proton – JApache Qpid Proton-J
C/C++C/C++ Azure UAMQP C, Apache csontos-proton – cAzure uAMQP C, Apache Qpid Proton-C
PythonPython Azure uAMQP for Python, Apache csontos proton PythonAzure uAMQP for Python, Apache Qpid Proton Python
PHPPHP A PHP-hez készült Azure uAMQPAzure uAMQP for PHP
RubyRuby Apache csontos proton RubyApache Qpid Proton Ruby
GoGo Azure go AMQP, Apache csontos proton goAzure Go AMQP, Apache Qpid Proton Go
C#/F #/VBC#/F#/VB AMQP .net Lite, Apache AMQPAMQP .NET Lite, Apache NMS AMQP
JavaScript/NodeJavaScript/Node RheaRhea

IntegrációIntegration

Service Bus teljes mértékben integrálható a Microsoft és az Azure számos szolgáltatásával, például:Service Bus fully integrates with many Microsoft and Azure services, for instance:

Következő lépésekNext steps

A Service Bus-üzenetküldéssel való megismerkedéshez tekintse meg a következő cikkeket:To get started using Service Bus messaging, see the following articles: