SQL Server Service Broker

SQL Server Service Broker 在 SQL Server 数据库引擎中为消息传递和队列应用程序提供本机支持。 这使开发人员可以更轻松地创建使用数据库引擎组件在完全不同的数据库之间进行通信的复杂应用程序。 开发人员可以使用 Service Broker 轻松生成可靠的分布式应用程序。

使用 Service Broker 的应用程序开发人员无需编写复杂的内部通信和消息,即可跨多个数据库分发数据工作负荷。 因为 Service Broker 会处理会话上下文中的通信路径,所以这就减少了开发和测试工作。 同时还提高了性能。 例如,支持网站的前端数据库可以记录信息,并发送处理密集型任务以便在后端数据库中进行排队。 Service Broker 确保在事务上下文中管理所有任务,以确保可靠性和技术一致性。

Service Broker 文档在哪里?

Service Broker 的参考文档包含在 SQL Server 2014 文档中。 本参考文档包含以下各节:

有关 概念以及开发和管理任务,请参阅 以前发布的文档 Service Broker 。 由于 2014 SQL Server Service Broker 中的更改很少,因此本文档不会在 SQL Server 2014 文档中重现。

Service Broker 新增功能

2014 SQL Server没有引入重大更改。 2012 SQL Server 引入了以下更改。

可以将消息发送到多个目标服务(多播)

通过支持多个会话句柄,扩展了 SEND (Transact-SQL) 语句的语法以启用多播。

队列将公开此消息排队时间

队列具有一个新列 message_enqueue_time,用于显示消息已在队列中待了多少时间。

可以禁用有害消息处理

现在,CREATE QUEUE (Transact-SQL)ALTER QUEUE (Transact-SQL) 语句可以通过添加子句 POISON_MESSAGE_HANDLING (STATUS = ON | OFF) 来启用或禁用有害消息处理。 目录视图 sys.service_queues 现在具有列 is_poison_message_handling_enabled ,以指示是启用还是禁用有害消息。

Service Broker 中的 AlwaysOn 支持

有关详细信息,请参阅 Service Broker with AlwaysOn Availability Groups (SQL Server)