什么是SQL Server中的Service Broker?

时间:2010-05-18 12:36:17

标签: .net sql sql-server service-broker

什么是SQL Server中的Service Broker,在简单数据库中启用它是否有意义,而不是在分布式数据库中启用它?

3 个答案:

答案 0 :(得分:15)

SQL Service Broker是一种扩展机制,允许您对事件进行排队以进行异步处理。

启用代理没有内在的危害,如果未使用它只会闲置。

它适用于简单和分布式DB。一个简单的用例是日志记录队列。我们在客户端使用它来排队xml消息以异步处理。因此我们将xml推送到InitatorQueue,然后让服务从队列中提取它们,通过xpath提取一些必要的属性,并将它们插入到我们数据库的持久性表中。

Here is a good reference

答案 1 :(得分:5)

Service Broker是内置于SQL Server数据库引擎中的消息传递系统。 这里有一些你可能会阅读的文章,看看它是如何运作的。

Centralized Asynchronous Auditing with Service Broker
Centralized Asynchronous Auditing across Instances and Servers with Service Broker
How to troubleshoot Service Broker problems

答案 2 :(得分:2)

Service Broker是一个异步消息系统。它允许您将消息发送到队列。然后一些工人进程接收消息。无法保证订单,或何时收到邮件。但SQL Server确实保证消息处理以事务方式发生。

异步消息传递是最重的架构之一。您应该仔细考虑附加值是否值得复杂。