Microsoft SQL Server 2005 引入了 Service Broker,这是一项全新的技术,可用于生成数据库加强型的安全、可靠、可扩展的分布式应用程序。
Service Broker 说明
Service Broker 是数据库引擎的一部分。Service Broker 提供:
- 用来在 SQL Server 数据库中存储消息队列的设备。
- 新增的 Transact-SQL 语句,应用程序可以使用这种语句发送和接收消息。每个消息都是对话的组成部分,对话是指两个参与者之间的可靠、稳定的通信通道。
Service Broker 为单个 SQL Server 实例中的应用程序和将工作分布在多个 SQL Server 实例上的应用程序提供独特的功能。
在 SQL Server 实例中,Service Broker 提供了一个功能强大的异步编程模型。异步编程允许数据库应用程序在资源可用时执行占用大量资源的任务,以此来缩短响应时间,提高吞吐量。
Service Broker 还会在 SQL Server 实例之间提供可靠的消息传递服务。Service Broker 支持将体系结构化的应用程序视为服务。在这种体系结构中,业务系统中的逻辑作为一系列基于网络的服务实现。需要使用这些服务中所包含功能的应用程序可以利用消息来与这些服务进行交互。Service Broker 使用 TCP/IP 在实例之间交换消息。Service Broker 中所包含的功能有助于防止未经授权的网络访问,并可以对通过网络发送的消息进行加密。
对于 SQL Server 实例内的消息与 SQL Server 实例之间的消息,Service Broker 的编程模型是相同的。通过提供一致的编程模型,使用 Service Broker 的应用程序无需更改应用程序代码即可很容易地向上扩展或向外扩展。应用程序使用 Service Broker 来可靠地交换消息,即使这些应用程序未同时运行或未同时连接到网络。
通过实现 SQL Server 中的消息传递,Service Broker 提供了以下优势:
- 高伸缩性。消息队列是 SQL Server 数据库的一部分,它们可以利用 SQL Server 数据库引擎的提高性能的功能。此外,可以运行多个服务实例来处理一个队列中的消息,从而增加中间层应用程序的伸缩性。Service Broker 提供集成程序的激活功能,这使应用程序能够有效地使用系统资源。Service Broker 应用程序可以根据服务负载的不同而动态伸缩。
- 消息协调、排序和锁定。Service Broker 能够自动处理很多创建消息处理应用程序所必需的困难任务。使用 Service Broker 的应用程序在会话中每次始终接收一条消息。会话中的消息以发送顺序到达。相关会话的相关消息会自动分组在一起,以便应用程序方便地将消息协调到不同的服务。Service Broker 每次只允许一个读取器读取会话组中的消息。应用程序使用这种内置的锁定功能安全有效地执行并发处理。
- 集成数据库数据。存储在 SQL Server 数据库中的消息队列是数据库的组成部分。它们成为数据库的所有备份中必需的组成部分,每当从备份还原数据库时,消息队列就会与数据一起还原。消息处理操作是涉及数据库数据的任何事务所不可或缺的组成部分。因为消息队列是由独立于数据库服务器的服务管理的,所以无需管理分布式事务。
- 集成数据库安全性。Service Broker 使用 SQL Server 2005 中的安全功能帮助应用程序保持安全状态。
有关 Service Broker 的详细信息,请参阅 Service Broker 简介。
请参阅
概念
其他资源
Introduction to Service Broker Programming