Service Broker 与 AlwaysOn 可用性组 (SQL Server)

本主题包含有关配置 Service Broker 以便用于 SQL Server 2012 中的 AlwaysOn 可用性组的信息。

本主题内容:

  • 可用性组中的服务接收远程消息的要求

  • 向可用性组中的远程服务发送消息的要求

可用性组中的服务接收远程消息的要求

  1. 确保可用性组拥有侦听器。

    有关详细信息,请参阅创建或配置可用性组侦听器 (SQL Server)

  2. 确保 Service Broker 端点存在并已正确配置。

    在为可用性组承载可用性副本的每个 SQL Server 实例上,按如下方式配置 Service Broker 端点:

    • 将 LISTENER_IP 设置为“ALL”。 此设置启用绑定到可用性组侦听器的所有有效 IP 地址上的连接。

    • 在所有主机服务器实例上,将 Service Broker PORT 设置为同一端口号。

      提示提示

      若要查看给定服务器实例上的 Service Broker 端点的端口号,请查询 sys.tcp_endpoints 目录视图的 port 列,其中 type_desc = 'SERVICE_BROKER'。

    下面的示例创建经过 Windows 身份验证的 Service Broker 端点,该端点使用默认 Service Broker 端口 (4022) 并侦听所有有效的 IP 地址。

    CREATE ENDPOINT [SSBEndpoint]
        STATE = STARTED
        AS TCP  (LISTENER_PORT = 4022, LISTENER_IP = ALL )
        FOR SERVICE_BROKER (AUTHENTICATION = WINDOWS)
    

    有关详细信息,请参阅 CREATE ENDPOINT (Transact-SQL)

  3. 授予针对端点的 CONNECT 权限。

    向 PUBLIC 或某个登录名授予 Service Broker 端点的 CONNECT 权限。

    下面的示例向 PUBLIC 授予名为 broker_endpoint 的 Service Broker 端点的连接权限。

    GRANT CONNECT ON ENDPOINT::[broker_endpoint] TO [PUBLIC]
    

    有关详细信息,请参阅 GRANT (Transact-SQL)

  4. 确保 msdb 包含 AutoCreatedLocal 路由或指向特定服务的路由。

    注意注意

    默认情况下,每个用户数据库(包括 msdb)都包含路由 AutoCreatedLocal。 此路由匹配任何的服务名称和 Broker 实例,并指定消息应在当前实例中传递。 相比显式指定与远程实例通信的特定服务的路由,AutoCreatedLocal 具有的优先级较低。

    有关创建路由的细信息,请参阅 Service Broker 路由示例(在 SQL Server 2008 R2 版的联机丛书中)和 CREATE ROUTE (Transact-SQL)

向可用性组中的远程服务发送消息的要求

  1. 创建指向目标服务的路由。

    按如下方式配置路由:

    • 将 ADDRESS 设置为承载服务数据库的可用性组的侦听器 IP 地址。

    • 将 PORT 设置为您在每个远程 SQL Server 实例的 Service Broker 端点中指定的端口。

    下面的示例为 ISBNLookupRequestService 服务创建一个名为 RouteToTargetService 的路由。 该路由的目标为可用性组侦听器 MyAgListener,它使用端口 4022。

    CREATE ROUTE [RouteToTargetService] WITH 
    SERVICE_NAME = 'ISBNLookupRequestService', 
    ADDRESS = 'TCP://MyAgListener:4022';
    

    有关详细信息,请参阅 CREATE ROUTE (Transact-SQL)

  2. 确保 msdb 包含 AutoCreatedLocal 路由或指向特定服务的路由。(有关详细信息,请参阅本主题前面的可用性组中的服务接收远程消息的要求。)

用于“返回首页”链接的箭头图标[Top]

相关任务

用于“返回首页”链接的箭头图标[Top]

请参阅

概念

AlwaysOn 可用性组概述 (SQL Server)

可用性组侦听器、客户端连接和应用程序故障转移 (SQL Server)

SQL Server Service Broker