SQL Server Service Broker – 消息队列

SQL Server Service Broker – 消息队列
 
Service Broker 是集成在SQL Server 2005/2008内的消息服务,允许数据库应用程序单向(one-way)或双向(two-way)轻松交换消息。Service Broker 两个重要的优点是:
(1)异步消息(Asynchronous messages)
(2)确保到达目的地(Guaranteed delivery)
 
Service Broker 包含一些相关的组件,Contract、Service、Queue队列、Message Type消息类型、Service program or service application 服务应用程序(一般为存储过程)等等,如下图所示。
 
 
Service Broker 应用程序通过对话进行通信。在实际生活中,对话是两个人之间的沟通。一个人发送一条消息,另外一个人接收消息并回复。
在Service Broker中,一个对话是通过contract、队列、服务进行可靠的、异步的消息交换。简而言之,Service Broker 对话用来发送和接收消息。如下图所示,两个分离的数据库分别定义了一个Service Broker服务,相互之间进行发送和接收消息,进行双向对话。
 

 
Orders数据库发送一条消息给Shipping数据库,消息中说一个订单Order已经接收并确认了。Shipping数据库则发送一条确认消息,说订单正在被处理,随后当订单实际发货后,发送另一条消息给Orders数据库。
当有消息在进入队列时,可以配置Service Broker自动启动服务程序,或者配置程序定期检查消息队列(Message Queue)。Service Broker非常灵活,足以出来不同的业务需要。
 
关于Service Broker的实际开发,建议你参考如下一些文章:
Service Broker实现发布-订阅(Publish-Subscribe)框架(1) (中文)
 
Service Broker实现发布-订阅(Publish-Subscribe)框架(2) (中文)
 
Service Broker实现发布-订阅(Publish-Subscribe)框架(3) (中文)
 
Introducing Distributed Messaging using Service Broker in SQL Server 2005 (英文)
 
posted on 2009-03-10 08:23  EntLib  阅读(2466)  评论(0编辑  收藏  举报