Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: SQL Server Управляемый экземпляр SQL Azure
Пересылка сообщений Service Broker позволяет экземпляру SQL Server принимать сообщения извне экземпляра и отправлять эти сообщения в другой экземпляр.
Администратор может использовать перенаправление сообщений в:
Обеспечение подключения между серверами в разных доменах доверия.
Упрощение администрирования путем создания одного централизованного экземпляра, в котором хранятся сведения о маршрутизации для домена.
Распределите работу между несколькими экземплярами.
Если переадресация включена, таблица msdb.sys.routes маршрутизации определяет, пересылается ли сообщение, полученное из другого экземпляра. Если адрес соответствующего маршрута не LOCALзадан, SQL Server перенаправит сообщение указанному адресу. В противном случае сообщение доставлено локально.
Каждое сообщение Service Broker содержит максимальное время существования и количество раз пересылки сообщения. Когда экземпляр перенаправит сообщение, этот экземпляр увеличивает количество сообщений. Если сообщение превышает максимальное время существования, экземпляр пересылки удаляет сообщение. Эта стратегия помогает избежать проблем в ситуациях, когда может существовать цикл маршрутизации.
Пересылка и надежная доставка
Экземпляр, пересылающий сообщение, не подтверждает сообщение отправителю. Только окончательное назначение подтверждает сообщение. Если отправитель не получает подтверждение из назначения через период времени, отправитель повторяет сообщение.
Экземпляр, выполняющий пересылку сообщений, не должен хранить пересылаемые сообщения. Вместо этого SQL Server содержит сообщения, которые будут пересылаться в памяти. Объем памяти, доступный для пересылки сообщений, указывается в рамках конфигурации конечной точки Service Broker. Эта стратегия позволяет эффективно переадресации сообщений без отслеживания состояния. Если экземпляр, выполняющий пересылку сообщений, завершается сбоем, сообщения не будут потеряны. Каждое сообщение всегда сохраняется у отправителя до тех пор, пока конечный адресат не подтвердит получение сообщения, как описано в протоколах связи Service Broker.
Представление управления sys.dm_broker_forwarded_messages содержит сведения о сообщениях, которые в настоящее время перенаправляются экземпляром. Экземпляр не сохраняет сообщения в процессе пересылки; эти сообщения существуют только в памяти. Экземпляр, отправляющий сообщение и экземпляр, получающий сообщение, сохраняет сообщения. Экземпляр отправки не удаляет сообщение до тех пор, пока получатель не подтвердит получение сообщения.
Безопасность и пересылка
Пересылка сообщений Service Broker не требует расшифровки пересылаемого сообщения. Поэтому только базы данных, участвующие в беседе, должны иметь настройку безопасности диалогов.
Однако, так как безопасность транспорта применяется к соединениям между экземплярами SQL Server, каждый экземпляр SQL Server должен иметь правильную настройку безопасности транспорта для экземпляров, с которыми он взаимодействует напрямую. Например, если экземпляр A и экземпляр B обмениваются данными через экземпляр пересылки, то для экземпляра A и экземпляра B необходимо правильно настроить безопасность транспорта для экземпляра пересылки. Так как экземпляры не обмениваются сообщениями напрямую, им не нужно настраивать транспортную безопасность для связи друг с другом.
Связанный контент
- Создать конечную точку (Transact-SQL)
- ALTER ENDPOINT (Transact-SQL)
- sys.dm_broker_forwarded_messages (Transact-SQL)
- sys.routes (Transact-SQL)
- sys.transmission_queue (Transact-SQL)
- Маршрутизация и сетевое взаимодействие Service Broker
- Конечные точки Service Broker
- Безопасность диалогового окна Service Broker
- Безопасность транспорта Service Broker