Cloud & IT Cert Prep · Pelajaran

Azure Service Bus untuk Pemesejan Terpisah

Cipta ruang nama Service Bus dengan baris gilir dan topik, hantar serta terima mesej daripada aplikasi dan konfigurasikan baris gilir surat mati untuk mengendalikan mesej yang gagal.

Pelajaran 2 daripada 413 langkah

Azure Service Bus untuk Pemesejan Terpisah ialah pelajaran Cloud & IT Cert Prep percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Cloud & IT Cert Prep, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Cloud & IT Cert Prep merangkumi sejumlah 4 pelajaran.

Mengapa Pemesejan Perlu Dipisahkan?

Dalam seni bina yang bergandingan rapat, Service memanggil satu sama lain secara segerak — jika Service hiliran lambat atau tidak tersedia, pemanggil turut tersekat atau gagal. Baris gilir pemesejan memperkenalkan penimbal tak segerak antara pengeluar dan pengguna, supaya Service hiliran yang lambat tidak menyebabkan kegagalan berantai kepada Service huluan. Azure Service Bus ialah Service pemesejan gred perusahaan Microsoft yang menyediakan baris gilir (titik ke titik) dan topik (terbit-lang­gan) dengan penghantaran terjamin, pengurutan dan keupayaan memasukkan mesej ke baris gilir huruf mati.

Ruang Nama dan Tahap Service Bus

Ruang nama Service Bus ialah Container peringkat teratas untuk semua entiti pemesejan (baris gilir dan topik), serta menyediakan titik akhir FQDN (contohnya, myns.servicebus.windows.net). Ruang nama mempunyai tiga tahap: Asas (baris gilir sahaja, tanpa topik, saiz mesej maksimum 256 KB), Standard (baris gilir + topik, maksimum 256 KB), dan Premium (baris gilir + topik, mesej sehingga 100 MB, kapasiti khusus, integrasi VNet dan pemulihan bencana geografi). Premium diperlukan untuk beban kerja pengeluaran yang memerlukan prestasi yang disokong SLA.

# Create a Service Bus namespace (Standard tier)
az servicebus namespace create \
  --resource-group myRG \
  --name myservicebusns \
  --location eastus \
  --sku Standard

Baris Gilir: Pemesejan Titik ke Titik

Baris gilir Service Bus menyimpan mesej mengikut tertib FIFO dan menghantar setiap mesej kepada tepat satu pengguna. Pengguna menerima mesej menggunakan mekanisme intai-kunci: mesej disembunyikan buat sementara daripada pengguna lain semasa diproses. Jika pengguna berjaya menyelesaikan pemprosesan, ia memanggil CompleteMessage() untuk mengalih keluar mesej daripada baris gilir. Jika pemprosesan gagal, pengguna memanggil AbandonMessage() dan mesej kelihatan semula untuk percubaan lain. Selepas bilangan percubaan penghantaran yang boleh dikonfigurasikan, mesej yang tidak boleh diproses dipindahkan ke baris gilir huruf mati (DLQ).

# Create a Service Bus queue with DLQ enabled
az servicebus queue create \
  --resource-group myRG \
  --namespace-name myservicebusns \
  --name orders \
  --max-delivery-count 5 \
  --default-message-time-to-live P7D \
  --dead-lettering-on-message-expiration true

Topik dan Langganan

Topik melaksanakan corak terbit-lang­gan: pengeluar menghantar mesej kepada topik, dan sebarang bilangan langganan pada topik tersebut masing-masing menerima salinan mesej itu. Langganan boleh mempunyai penapis (ungkapan SQL atau korelasi) untuk menerima hanya subset mesej — contohnya, langganan HighPriority yang hanya menerima mesej apabila sifat Priority sama dengan High. Ini membolehkan satu topik mengagihkan mesej kepada banyak Service hiliran, dengan setiap satunya berminat terhadap subset peristiwa yang berbeza.

# Create a topic and two subscriptions with filters
az servicebus topic create \
  --resource-group myRG \
  --namespace-name myservicebusns \
  --name order-events

az servicebus topic subscription create \
  --resource-group myRG \
  --namespace-name myservicebusns \
  --topic-name order-events \
  --name high-priority-sub

az servicebus topic subscription rule create \
  --resource-group myRG \
  --namespace-name myservicebusns \
  --topic-name order-events \
  --subscription-name high-priority-sub \
  --name PriorityFilter \
  --filter-sql-expression 'Priority = '"'"'High'"'"''

Menghantar dan Menerima Mesej

SDK Azure Service Bus menyediakan ServiceBusClient untuk menghantar dan menerima mesej. Untuk menghantar, cipta ServiceBusSender dan panggil SendMessageAsync(). Untuk menerima, cipta ServiceBusReceiver dan panggil ReceiveMessageAsync() (berasaskan tarik) atau gunakan ServiceBusProcessor dengan pengendali peristiwa untuk pemprosesan berterusan berasaskan tolak. Penggunaan DefaultAzureCredential dengan SDK Service Bus menghapuskan keperluan untuk rentetan sambungan, sekali gus mengekalkan corak tanpa kata laluan.

# Python: Send a message to a Service Bus queue
from azure.servicebus import ServiceBusClient, ServiceBusMessage
from azure.identity import DefaultAzureCredential

credential = DefaultAzureCredential()
client = ServiceBusClient(
  fully_qualified_namespace='myservicebusns.servicebus.windows.net',
  credential=credential
)
with client.get_queue_sender(queue_name='orders') as sender:
    msg = ServiceBusMessage('{ 'orderId': '12345', 'amount': 99.99 }')
    sender.send_messages(msg)
    print('Message sent')

Baris Gilir Huruf Mati

Baris gilir huruf mati (DLQ) ialah subbaris gilir yang menerima secara automatik mesej yang tidak dapat dihantar. Mesej dimasukkan ke baris gilir huruf mati apabila: mesej melebihi bilangan penghantaran maksimum, mesej tamat tempoh (TTL telah berlalu), atau mesej gagal dalam penilaian penapis langganan topik. Pemantauan DLQ amat penting — DLQ yang semakin besar menunjukkan kegagalan pemprosesan yang sistematik. Mesej DLQ mengekalkan kandungan asalnya bersama sifat sebab huruf mati dan perihalan yang ditambahkan oleh Service Bus untuk membantu mendiagnosis punca utama.

# Read messages from the dead-letter queue
az servicebus queue show \
  --resource-group myRG \
  --namespace-name myservicebusns \
  --name 'orders/$DeadLetterQueue' \
  --query 'countDetails.deadLetterMessageCount'

Sesi Mesej untuk Pengurutan

Sesi membolehkan pengurutan ketat bagi mesej yang tergolong dalam kumpulan logik yang sama. Setiap mesej ditandai dengan SessionId (contohnya, ID pelanggan atau ID pesanan), dan pengguna yang menyedari sesi menerima semua mesej untuk sesi tertentu mengikut tertib FIFO secara eksklusif. Sesi penting untuk aliran kerja yang langkahnya mesti dilaksanakan mengikut turutan — seperti memproses semua peristiwa bagi pesanan tertentu: Dicipta → PaymentReceived → Dihantar → Disampaikan. Sesi didayakan semasa penciptaan baris gilir atau langganan.

Service Bus berbanding Event Grid berbanding Event Hubs

Ketiga-tiga Service pemesejan Azure ini sering dikelirukan: Service Bus adalah untuk pemesejan perusahaan yang boleh dipercayai dan bertransaksi, dengan pengurutan, sesi dan DLQ — sesuai untuk pemprosesan pesanan, transaksi kewangan dan orkestrasi aliran kerja. Event Grid adalah untuk penghalaan peristiwa reaktif (blob telah dimuat naik, VM telah dipadamkan) dengan pengagihan kepada beberapa pengendali, tetapi tanpa pengurutan atau main semula. Event Hubs adalah untuk penstriman peristiwa berdaya pemprosesan tinggi (jutaan peristiwa sesaat) dengan keupayaan main semula — sesuai untuk telemetri IoT dan pengingesan log. Buat pilihan berdasarkan keperluan pengurutan, daya pemprosesan dan ketahanan.

Pemulihan Bencana Geografi

Pemulihan Bencana Geografi Service Bus (Geo-DR) mereplikasi metadata ruang nama (baris gilir, topik, langganan dan dasar akses) ke rantau sekunder. Rantau berpasangan berkongsi satu nama hos alias; jika rantau utama gagal, anda memulakan pengambilalihan dan alias tersebut diselesaikan kepada rantau sekunder. Ambil perhatian bahawa data mesej (mesej yang sedang diproses) tidak direplikasi dalam tahap Standard — hanya Geo-DR tahap Premium yang mereplikasi mesej. Untuk pemesejan yang sangat kritikal, gunakan Premium + Geo-DR bagi memenuhi keperluan RTO dan RPO.

Penskalaan dan Entiti Terpartisi

Untuk senario daya pemprosesan tinggi, dayakan pembahagian pada baris gilir dan topik semasa penciptaan. Entiti terpartisi menggunakan beberapa broker mesej dan serpihan storan secara dalaman, lalu menggandakan kapasiti daya pemprosesan. Dalam tahap Standard, entiti terpartisi mempunyai saiz keseluruhan sehingga 80 GB. Setiap mesej dihalakan ke partition berdasarkan sifat PartitionKey (lalai kepada ID sesi jika sesi didayakan). Pembahagian ialah keputusan sekali sahaja semasa penciptaan — anda tidak boleh membahagikan baris gilir sedia ada. Gunakan tahap Premium untuk daya pemprosesan terjamin tertinggi tanpa kerumitan pembahagian.

# Create a partitioned queue (Standard tier)
az servicebus queue create \
  --resource-group myRG \
  --namespace-name myservicebusns \
  --name orders-partitioned \
  --enable-partitioning true

Memantau Kesihatan Service Bus

Metrik utama Service Bus untuk dipantau dalam Azure Monitor: Active Messages (kedalaman baris gilir — kedalaman yang meningkat menunjukkan kelengahan pengguna), Dead-lettered Messages (kegagalan pemprosesan), Server Errors dan User Errors (isu pengesahan dan pendikitan), serta Incoming Requests (daya pemprosesan keseluruhan). Konfigurasikan amaran metrik supaya pasukan operasi dimaklumkan apabila baris gilir huruf mati berkembang melebihi ambang atau apabila mesej aktif tidak digunakan untuk tempoh yang berterusan.

Semakan Pantas

Uji pemahaman anda tentang konsep Microsoft Azure Fundamentals (AZ-900) daripada pelajaran ini.

Imbas Kembali Pelajaran

Dalam pelajaran ini, anda telah mempelajari bahawa baris gilir Service Bus menyediakan pemesejan titik ke titik dengan penghantaran intai-kunci dan baris gilir huruf mati untuk mesej yang gagal, topik dan langganan mengagihkan mesej kepada beberapa pengguna dengan peraturan penapis, dan sesi membolehkan pemprosesan tersusun bagi mesej yang tergolong dalam kumpulan logik yang sama. Seterusnya, kita akan meneroka Azure Container Apps untuk menggunakan mikroService moden.

Percuma untuk bermula

Pelajari Cloud & IT Cert Prep dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
150
Pelajaran
600

Soalan Lazim

Adakah pelajaran “Azure Service Bus untuk Pemesejan Terpisah” percuma?

Ya — teks penuh “Azure Service Bus untuk Pemesejan Terpisah” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Cloud & IT Cert Prep, tingkat taraf kepada CoddyKit PRO. Kursus Cloud & IT Cert Prep merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Azure Service Bus untuk Pemesejan Terpisah”?

Cipta ruang nama Service Bus dengan baris gilir dan topik, hantar serta terima mesej daripada aplikasi dan konfigurasikan baris gilir surat mati untuk mengendalikan mesej yang gagal. Anda berlatih Cloud & IT Cert Prep menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Cloud & IT Cert Prep?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Cloud & IT Cert Prep di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Azure Service Bus untuk Pemesejan Terpisah” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Cloud & IT Cert Prep ini?

Ya. Setiap pelajaran Cloud & IT Cert Prep menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Identiti Terurus untuk Pengesahan Tanpa Kata Laluan
  2. Azure Service Bus untuk Pemesejan Terpisah
  3. Azure Container Apps
  4. Aliran Kerja Pembangun dari Hujung ke Hujung
← Kembali ke Cloud & IT Cert Prep