服務架構
適用於:SQL ServerAzure SQL 受控執行個體
本節說明資料庫物件,其指定使用 Service Broker 的應用程式基本設計。
在設計階段,Service Broker 應用程式會指定下列物件:
訊息類型 - 定義在應用程式間交換的訊息名稱。 選擇性提供訊息的驗證。
合約 - 指定給定交談中的訊息方向和類型。
佇列 - 可儲存訊息。 此儲存機制允許服務之間的非同步通訊。 Service Broker 佇列還有其他優點,例如自動鎖定同一交談群組中的訊息。
服務 - 是交談的可定址端點。 Service Broker 訊息會從某個服務傳送至另一個服務。 服務會指定要保存訊息的佇列,並指定哪個服務可做為目標的合約。 合約提供給服務一組定義明確的訊息類型。
Service Broker 應用程式會使用先前清單中的 SQL Server 物件來進行交談。 如果程式可以在 SQL Server 中執行 Transact-SQL 陳述式,即可使用 Service Broker。 應用程式可以是以 Transact-SQL 或 CLR 相容的語言撰寫的預存程序,也可以是連線到 SQL Server 執行個體的外部程式。
下圖顯示 Service Broker 服務:
如圖所示,ProcessExpenses 合約指定了三種類型的訊息:SubmitExpense、AcceptDenyExpense 和 ReimbursementIssued。 合約列出執行費用補償工作之交談所需的訊息類型。 ProcessExpenses 合約會管理 ProcessExpense 服務和使用 ProcessExpense 服務起始交談的任何服務之間的所有交談。 ProcessExpense 服務會將內送和外寄訊息儲存在 ExpenseQueue 佇列中。 ExpenseProcessing 預存程序會從此佇列接收訊息、處理訊息,並在需要回覆時將訊息傳送回佇列以路由至適當的 Broker。
本節內容
訊息類型
交談的參與者必須同意每則訊息的名稱和內容。 訊息類型會定義名稱和內容。合約
合約定義了應用程式會使用何種訊息類型來完成特定工作。佇列
佇列會儲存 Service Broker 訊息。服務
Service Broker 服務是特定商務工作或商務工作集合的名稱。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應