Sql server 使用具有多个路由的SQL Server Service Broker
使用SQL Server Service Broker时-如果我配置了一个具有两个路由的服务,并且在未指定所需目标代理实例的情况下执行了Sql server 使用具有多个路由的SQL Server Service Broker,sql-server,service-broker,Sql Server,Service Broker,使用SQL Server Service Broker时-如果我配置了一个具有两个路由的服务,并且在未指定所需目标代理实例的情况下执行了BEGIN DIALOG语句,那么它会选择哪些可能的目的地作为消息的目的地 我意识到使用begindialog可以明确地针对特定的代理,但这只是可选的。没有它会发生什么?消息会同时发送到两条路由吗?我现在找不到支持文档,但我的记忆表明它会任意选择其中一条路由。这是一种能够在提供相同处理能力的n个数据库之间实现负载平衡的方法,而作为消息发送者的您不在乎它们中的哪一
BEGIN DIALOG
语句,那么它会选择哪些可能的目的地作为消息的目的地
我意识到使用
begindialog
可以明确地针对特定的代理,但这只是可选的。没有它会发生什么?消息会同时发送到两条路由吗?我现在找不到支持文档,但我的记忆表明它会任意选择其中一条路由。这是一种能够在提供相同处理能力的n个数据库之间实现负载平衡的方法,而作为消息发送者的您不在乎它们中的哪一个真正进行了处理。正确。因为重试必须走同一条路线,所以选择并不完全是随意的。它基于会话ID的散列,用作可能路由数组中的索引。@remus-yes。路由只在新对话中发生。如果您已经与一个特定的数据库建立了对话,那么您将继续与该数据库进行对话。当然,这是OP的教诲,而不是你的(考虑到你给某人写信)!确保在每个路由上指定目标代理实例Id。