服务体系结构
本部分介绍一些数据库对象,它们指定使用 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 的应用程序
服务