ServiceBroker(简称SSB)是基于数据库引擎提供的一个强大的异步编程模型,通过ServiceBroker,开发人员无需编写复杂的通信和消息程序,即可在数据库实例之间完成高效可靠的异步通信。

Service Broker具有如下特点:

1  数据库集成

完全基于数据库引擎,无需任何开发。对象和数据也存储于数据库中,可以应用标准的数据维护方法(例如备份/还原数据)。

2  自动激活

可以为接收消息的Service配置消息处理存储过程,当收到消息时,自动激活该存储过程处理收到的消息。

3  相关消息锁定

同一会话组的消息可以保证由同一个消息处理过程处理。这在处理如订单这类,可能包含订单主表、订单明细等多条消息的情况下非常有用

4  排序和协调消息

在传递大内容的消息时,ServiceBroker会自动分拆消息,并且在接收端自动组合消息,无需编写额外的代码来保证这些分拆后的消息能够按照正确的顺序还原

5 松耦合与工作负荷灵活性

消息发送和接收可以随时被中断,恢复时将自动恢复消息处理,在自动激活的消息处理中,可以设置并发的线程数,以控制消息处理的速度。消息传递可以通过多个路由到达目的端,也可以避免因为某部分网络或者服务器负载过重导致消息无法及时到达目的地。

Service Broker通常用于:

1  异步触发器

2  大规模批处理

3  可靠和异步处理

完整的ServiceBroker如图所示。包含三层架构:

1  ServiceBroker对象

位于用户数据库内。一个标准的ServiceBroker对象由Service(服务,是消息发送和接收处理接口、Queue(队列,存储发送和接收的消息)、Contract(约束,确定这个ServiceBroker对象可以处理的消息规则)、MessageType(消息类型,确定具体的消息结构)。

2  数据库级ServiceBroker对象

同一数据库内的ServiceBroker对象之间可以直接传递消息。如果要与其他数据库的ServiceBroker对象传递消息,则必须在数据库中创建路由(Route)来标识本数据库外的ServiceBroker对象(体现在用于接口的Service上);如果ServiceBroker对象位于其他实例,则除了跌幅外,还可能需要创建用于身份验证的远程服务绑定(RemoteService Binding)。

3  服务器级ServiceBroker对象

当要与本实例外的ServiceBroker对象传递消息的时候,必须要在实例之间建立消息通道。实例级的ServiceBroker Endpoint用于完成此项工作,为了保证消息传输的安全性,还需要配置用于ServiceBroker Endpoint安全的相关对象。

如果想了解有关Service Broker更为详细的信息,可以参考联机帮助:

http://msdn.microsoft.com/zh-cn/library/bb522893.aspx

如果想自己动手配置一下Service Broker,可以参考联机帮助上的教程:

http://msdn.microsoft.com/zh-cn/library/bb839489.aspx

Service Broker 概述的更多相关文章

  1. SQL Server Service Broker创建单个数据库会话

    概述 SQL Server Service Broker 用来创建用于交换消息的会话.消息在目标和发起方这两个端点之间进行交换.消息用于传输数据和触发消息收到时的处理过程.目标和发起方既可以在同一数据 ...

  2. SQL Server Service Broker创建单个数据库会话(消息队列)

    概述 SQL Server Service Broker 用来创建用于交换消息的会话.消息在目标和发起方这两个端点之间进行交换.消息用于传输数据和触发消息收到时的处理过程.目标和发起方既可以在同一数据 ...

  3. The SQL Server Service Broker for the current database is not enabled

    把一个数据恢复至另一个服务器上,出现了一个异常: The SQL Server Service Broker for the current database is not enabled, and ...

  4. 基于SQL Server 2008 Service Broker构建企业级消息系统

    注:这篇文章是为InfoQ 中文站而写,文章的地址是:http://www.infoq.com/cn/articles/enterprisemessage-sqlserver-servicebroke ...

  5. Service Broker应用(2):不同server间的数据传输,包含集群

    不同Server之间的数据传输,包含DB使用AlwaysOn 配置脚本: SQL Server Service Broker 跨集群通信 具体的TSQL 脚本语句如下.注意的是TSQL语句是在发送方还 ...

  6. Service Broker应用(1):简介、同server不同DB间的数据传输

    简介:SQL Server Service Broker,以下简称SSB,是一种完全基于MSSQL数据库的数据处理技术,为短时间内处理大量数据提供了一种可靠.稳定.高效的解决方案.一次同步的数据最大可 ...

  7. The SQL Server Service Broker for the current database is not enabled, and as a result query notifications are not supported.

    当Insus.NET尝试解决此问题<When using SqlDependency without providing an options value, SqlDependency.Star ...

  8. BizTalk 开发系列(四十) BizTalk WCF-SQL Adapter读取SQL Service Broker消息

    SQL Service Broker 是在SQL Server 2005中新增的功能.Service Broker 为 SQL Server 提供队列和可靠的消息传递,可以可用来建立以异步消息为基础的 ...

  9. Configuring Service Broker for Asynchronous Processing

    Configuring Service Broker for Asynchronous Processing --create a database and enable the database f ...

随机推荐

  1. 8.抽象类、接口和多态.md

    目录 1.抽象类 1.抽象类 2.接口和抽象类的关系 2.1实现上的区别: 22.类和接口的关系: 2.3.Java为什么只能单继承可以多实现: 2.4.接口和接口的关系: 3.多态 2.接口和抽象类 ...

  2. NTKO OFFICE文档控件

    目录 前言 什么是ntko 准备工作 实战演练 总结 一.前言 Web开发中经常需要用到在线处理office文档的功能,现在市面上有一些常用的Web页面调用显示Office的控件技术,用起来很方便. ...

  3. 本地Navicat连不上Linux虚拟机MySQL数据库问题

    LinuxAndMySQL 版权声明:本文为博主原创文章,未经博主允许不得转载. 在Linux登录到MySQL数据:mysql -uroot -p 输入密码 切换到mysql数据库 mysql> ...

  4. linux 设备驱动分类

    1. 字符设备 :在I/O传输过程中以字符为单位. 2. 块设备: 在传输过程中以块为单位,相关概念有 缓冲,I/O调度,请求队列.主要体现出与字符设备在操作硬件的接口实现方式上是不一样的. 3. 网 ...

  5. 第一次登录mysql,使用任何命令都报错ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

    问题: 使用临时密码登录成功后,使用任何myql命令,例如show databases;都提示下面的报错 ERROR 1820 (HY000): You must reset your passwor ...

  6. oracle 一致读原理

    在Oracle数据库中,undo主要有三大作用:提供一致性读(Consistent Read).回滚事务(Rollback Transaction)以及实例恢复(Instance Recovery). ...

  7. Android笔记:intent

    一.显式intent如下:(1)在intent构造函数传入两个activity文件名Intent intent = new Intent(FirstActivity.this, SecondActiv ...

  8. CSS垂直翻转/水平翻转提高web页面资源重用性

                    /*水平翻转*/ .flipx {     -moz-transform:scaleX(-1);     -webkit-transform:scaleX(-1);   ...

  9. as3.0拼图

    package com{ import flash.display.MovieClip; import flash.events.MouseEvent; import flash.geom.Point ...

  10. RelativeLayout 相对布局

    根据父容器来定位: 想位于哪,哪个属性就设置为true 左对齐:android:layout_alighParentLeft 右对齐:android:layout_alighParentRight 顶 ...