sql server service broker 為訊息和佇列應用程式提供 sql server 資料庫引擎本機支援。這使開發人員可以輕鬆地建立使用資料庫引擎元件在完全不同的資料庫之間進行通訊的複雜應用程式。開發人員可以使用 service broker 輕鬆生成可靠的分布式應用程式。
使用 service broker 的應用程式開發人員無需編寫複雜的內部通訊和訊息,即可跨多個資料庫分發資料工作負荷。因為 service broker 會處理會話上下文中的通訊路徑,所以這就減少了開發和測試工作。同時還提高了效能。例如,支援**的前端資料庫可以記錄資訊並將程序密集型任務傳送到後端資料庫以進行排隊。service broker 確保在事務上下文中管理所有任務以確保可靠性和技術一致性。
所有 service broker 應用程式都通過「會話」(即可靠的、長時間執行的非同步訊息交換)進行通訊。service broker 在會話中使用以下物件。
物件定義
訊息訊息是服務間交換的資料。 每個訊息都屬於乙個會話,並具有特定的訊息型別。
對話會話
對話是兩個 service broker 服務間的雙向會話。 對話為 service broker 提供了一次順序 (eoio) 訊息傳遞功能。 每個對話屬於乙個會話組,並遵循特定的約定。
會話組會話組標識共同完成同一項任務的多個會話。service broker 使用會話組來管理訊息鎖定,這可以幫助應用程式開發人員管理併發。 應用程式開發人員還利用會話組協助管理狀態。
在設計時,service broker 應用程式指定以下物件:
service broker 應用程式使用上述列表中的 sql server 物件進行會話。 sql server 中任何可執行 transact-sql 語句的程式均可使用 service broker。 應用程式可以是以 transact-sql 編寫的或以符合 clr 的語言編寫的儲存過程,也可以是連線到 sql server 例項的外部程式。
以下關係圖說明 service broker 服務:
如圖所示,proces***penses約定指定三種訊息型別:submitexpense、acceptdenyexpense 和 reimbursementissued。 該約定列出執行退款任務的會話所需的訊息型別。proces***penses約定控制proces***pense服務和發起與proces***pense服務間會話的任何服務之間的所有會話。proces***pense服務將傳入訊息和傳出訊息儲存在expensequeue佇列中。expenseprocessing儲存過程從此佇列接收訊息並處理訊息,在需要答覆的情況下再將訊息發回佇列以路由到相應的 broker。
主題說明
遠端服務繫結
說明如何設定 broker 用於建立對話安全模式的證書。 對話安全模式為到特定服務的會話提供端到端的加密和遠端授權。
路由說明如何指定服務及包含服務的資料庫的位置。 service broker 傳遞訊息時需要路由。 預設情況下,每個資料庫都包含乙個路由,該路由指定未定義其他路由的服務將在當前例項中傳遞。
service broker 端點
說明如何配置 sql server 以通過 tcp/ip 連線傳送
如圖所示,首先建立 submitexpense、acceptdenyexpense 和 reimbursementissued 訊息型別。然後基於這些訊息型別建立 proces***penses 約定,它提供乙個架構,使會話能夠完成退款任務。proces***penses 約定控制 proces***pense 服務與 submitexpense 服務間的所有會話。proces***penses 約定及其使用的訊息型別必須同時存在於特定的資料庫中,這些資料庫是與擁有基於此約定的會話的所有服務相關的資料庫。
service broker 在 submitexpense 服務的佇列中儲存傳送給該服務的訊息。expensesubmission 儲存過程接收來自此佇列的訊息、處理這些訊息,如果需要答覆的話,則將訊息傳送到另一服務。
service broker 在 proces***pense 服務的佇列中儲存傳送給該服務的訊息。expenseprocessing 儲存過程接收來自此佇列的訊息、處理這些訊息,如果需要答覆的話,則將訊息傳送到另一服務。
Service Broker 體系結構
會話體系結構 所有 service broker 應用程式都通過 會話 即可靠的 長時間執行的非同步訊息交換 進行通訊。service broker 在會話中使用以下物件。物件 定義 訊息 訊息是服務間交換的資料。每個訊息都屬於乙個會話,並具有特定的訊息型別。對話會話 對話是兩個 service b...
資料庫開啟 Service broker
當我們需要 對資料庫的連線更改通知應用程式的時候 我們就要開啟資料庫對我們的持續的服務 相當於socket 那麼我們先對程式進行編輯 c 建立控制台應用程式 開始之後 執行 會發現報錯 發現資料庫沒開啟服務 所以 我們開啟資料庫的查詢分析器 為當前的資料庫建立 service broker is b...
體系 體系結構與架構
體系,泛指部分組合而成的整體,是不同系統組成的系統。體系強調部分與整體的關係 系統體系結構是乙個綜合模型,系統體系結構是由許多結構要素及各種檢視 或觀點 view 所組成的 所以,系統體系結構是乙個綜合各種觀點的模型,用來完整描述整個系統。軟體體系結構是具有一定形式的結構化元素,即構件的集合,包括處...