Компонент Service Broker с группами доступности Always On (SQL Server)
Область применения:SQL Server
В этом разделе содержатся сведения о настройке Компонента Service Broker для работы с группами доступности AlwaysOn в SQL Server.
Прием удаленных сообщений из других экземпляров Service Broker
Убедитесь, что группа доступности имеет прослушиватель.
Дополнительные сведения см. в разделе Создание или настройка прослушивателя группы доступности (SQL Server).
Убедитесь, что конечная точка компонента Service Broker существует и правильно настроена.
На каждом экземпляре SQL Server, на котором размещена реплика доступности для группы доступности, настройте конечную точку Service Broker следующим образом:
Установите параметр LISTENER_IP в значение ALL. Этот параметр разрешает соединения по любому допустимому IP-адресу, привязанному к прослушивателю группы доступности.
Установите в параметре PORT компонента Service Broker одинаковый номер порта во всех экземплярах сервера.
Совет
Чтобы просмотреть номер порта конечной точки компонента Service Broker в заданном экземпляре сервера, запросите столбец port представления каталога sys.tcp_endpoints , где type_desc = 'SERVICE_BROKER'.
В следующем примере создается конечная точка компонента Service Broker с проверкой подлинности Windows, которая использует порт компонента 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).
Примечание.
Компонент SQL Server Service Broker не приспособлен для работы с несколькими подсетями. Задайте для параметра
RegisterAllProvidersIP
значение 0 и убедитесь, что кластер имеет необходимое разрешение в DNS для использования статических IP-адресов. Дополнительные сведения см. в разделе Настройка прослушивателя группы доступности. При попытке использования отключённого IP-адреса Service Broker может задержать сообщение со статусом "conversing".Предоставьте разрешение CONNECT на конечную точку.
Предоставьте разрешение CONNECT на конечную точку компонента Service Broker либо роли PUBLIC, либо пользователю.
В следующем примере разрешение на подключение к конечной точке компонента Service Broker с именем
SSBEndpoint
предоставляется роли PUBLIC.GRANT CONNECT ON ENDPOINT::[SSBEndpoint] TO [PUBLIC]
Дополнительные сведения см. в статье GRANT (Transact-SQL).
Убедитесь, что база данных msdb содержит маршрут AutoCreatedLocal или маршрут к некоторой службе.
Примечание.
По умолчанию все пользовательские базы данных, включая msdb, содержат маршрут AutoCreatedLocal. Этот маршрут соответствует любому имени службы и экземпляру брокера и указывает, что сообщение должно быть доставлено внутри текущего экземпляра. AutoCreatedLocal имеет более низкий приоритет, чем маршруты, которые явно указывают конкретную службу, обменивающуюся данными с удаленным экземпляром.
Дополнительные сведения о создании маршрутов см. в примерах маршрутизации Service Broker (в версии SQL Server 2008 R2 (10.50.x) документации в Интернете) и в CREATE ROUTE (Transact-SQL).
Требования к отправке сообщений удаленной службе в группе доступности
Создайте маршрут к целевой службе.
Настройте маршрут следующим образом.
Задайте в параметре ADDRESS IP-адрес прослушивателя группы доступности, в которой размещается база данных службы.
Установите значение параметра PORT в соответствии с портом, указанным в точке установки компонента Service Broker для каждого из удаленных экземпляров SQL Server.
В следующем примере создается маршрут с именем
RouteToTargetService
для службыISBNLookupRequestService
. Маршрут ведет к прослушивателю группы доступностиMyAgListener
, который использует порт 4022.CREATE ROUTE [RouteToTargetService] WITH SERVICE_NAME = 'ISBNLookupRequestService', ADDRESS = 'TCP://MyAgListener:4022';
Дополнительные сведения см. в статье CREATE ROUTE (Transact-SQL).
Убедитесь, что база данных msdb содержит либо маршрут "AutoCreatedLocal", либо маршрут к определенной службе. (Дополнительные сведения см. в подразделе Требования к службе в группе доступности для получения удаленных сообщенийвыше.)
Связанные задачи
См. также
Обзор групп доступности Always On (SQL Server)
Слушатели групп доступности, подключение клиентов и автоматическое переключение при отказе приложений (SQL Server)
SQL Server Service Broker