SQL Server Service Broker 为消息和队列应用程序提供 SQL Server 数据库引擎本机支持。这使开发人员可以轻松地创建使用数据库引擎组件在完全不同的数据库之间进行通信的复杂应用程序。开发人员可以使用 Service Broker 轻松生成可靠的分布式应用程序。
使用 Service Broker 的应用程序开发人员无需编写复杂的内部通信和消息,即可跨多个数据库分发数据工作负荷。因为 Service Broker 会处理会话上下文中的通信路径,所以这就减少了开发和测试工作。同时还提高了性能。例如,支持网站的前端数据库可以记录信息并将进程密集型任务发送到后端数据库以进行排队。Service Broker 确保在事务上下文中管理所有任务以确保可靠性和技术一致性。
Service Broker 在SQL Server 2005中即被引入,它通过对普通T-SQL 数据操作语言进行扩展,让内部或外部进程发送并接收可靠且异步的消息。发送者将消息发送到同一个数据库的队列中,或者发送到同一个SQL Server 实例的另一个数据库中,亦或发送到同一个服务器或远程服务器的一个实例中。
Service Broker 在SQL Server 2008中更加完善,Service Broker 更容易管理,并且相关技术文档也越来越多,它可以让开发人员依靠坚如磐石的SQL Server 关系型引擎来支持事务消息。
利用Service Broker 可以简化很多工作,这些自动化的工作在此之前是利用SQL Server 中的CLR 功能来实现的。随着 .NET Framework 3.5以及WCF和WWF 的不断改进,自动化的实现变得更加容易且更加组件化。这样就可以同外部服务更加灵活的进行交互,例如在飞机上即可实现对后台服务器中的活动目录进行管理或删除域账号。
我们利用Service Broker 和活动目录进行集成,这样就可以采用异步方式对其进行操作,而不会影响到SQL Server 进程,Service Broker 对我们来说很有价值,因为我们需要实现很多自动化并且需要频繁对架构进行变更。Service Broker 将SQL 管理对象提供给我们的后端模型,从而极大简化了我们对自动化进程的管理。
SQL Server: Service Broker Team Blog
http://msdn.microsoft.com/zh-cn/library/bb522893.aspx
http://blogs.technet.com/josebda/archive/2009/03/31/sql-server-2008-service-broker.aspx