SB 消息适配器
服务总线 (SB-Messaging) 适配器用于接收和发送队列、主题和中继等服务总线实体。 可以使用 SB-Messaging 适配器将本地BizTalk Server连接到 Azure。
从 BizTalk Server 2016 功能包 2 开始,支持服务总线高级版。 使用此适配器配置发送端口时,可以将消息发送到分区队列和主题。
重要
BizTalk SB-Messaging 适配器使用 SBMP 协议,该协议支持最大大小为 1mb 的消息。 BizTalk 适配器不支持可以处理较大消息的 AMQP 协议。
使用服务总线进行身份验证
服务总线提供两种进行身份验证的方法:
- 访问控制服务 (ACS)
- 共享访问签名 (SAS)
建议使用共享访问签名 (SAS) 通过服务总线进行身份验证。 共享访问密钥值列在Azure 门户中。
创建服务总线命名空间时,不会自动创建访问控制 (ACS) 命名空间。 若要使用访问控制,需要此命名空间的颁发者名称和颁发者密钥值。 使用 Windows PowerShell 创建新的 ACS 命名空间时,可以使用这些值。 这些值未在Azure 门户中列出。
若要使用 ACS 进行身份验证,并获取颁发者名称和颁发者密钥值,总体步骤包括:
添加 Azure 帐户:
Add-AzureAccount
返回订阅名称:
get-azuresubscription
选择订阅:
select-azuresubscription <name of your subscription>
创建新的命名空间:
new-azuresbnamespace <name for the service bus> "Location" -CreateACSNamespace $true -NamespaceType Messaging
示例:
new-azuresbnamespace biztalksbnamespace "South Central US" -CreateACSNamespace $true -NamespaceType Messaging
(创建新的 ACS 命名空间可能需要几分钟) 时,IssuerName 和 IssuerKey 值将列在连接字符串:
Name : biztalksbnamespace Region : South Central US DefaultKey : abcdefghijklmnopqrstuvwxyz Status : Active CreatedAt : 10/18/2016 9:36:30 PM AcsManagementEndpoint : https://biztalksbnamespace-sb.accesscontrol.windows.net/ ServiceBusEndpoint : https://biztalksbnamespace.servicebus.windows.net/ ConnectionString : Endpoint=sb://biztalksbnamespace.servicebus.windows.net/;SharedSecretIssuer=owner;SharedSecretValue=abcdefghijklmnopqrstuvwxyz NamespaceType : Messaging
有关指导 ,请参阅 New-AzureSBNamespace 。
从服务总线接收消息
在“BizTalk Server管理控制台”中,依次展开“BizTalk 组”、“应用程序”和“应用程序”。
右键单击“ 接收端口”,选择“ 新建”,然后选择“ 单向接收端口”。
为其命名,然后选择“ 接收位置”。
选择“ 新建”,为其指定 名称。 在“传输”部分中,从“类型”下拉列表中选择“SB-Messaging”,然后选择“配置”。
配置 “常规 ”属性:
使用此选项 要执行此操作 队列或订阅 URL 指定在其中部署 Service Bus 队列的 URL。 通常此 URL 的格式如下:
sb://<namespace>.servicebus.windows.net/<queue_name>
打开超时 指定一个时间跨度值来表示完成信道打开操作的时间。
默认值: 1 分钟关闭超时 指定一个时间跨度值来表示完成信道关闭操作的时间。
默认值: 1 分钟接收超时 指定一个时间跨度值来表示完成接收操作的时间。
默认值: 10 分钟预提取计数 指定同时从 Service Bus 队列或主题收到的消息数。 预提取允许队列或订阅客户端在执行接收操作时从服务加载其他消息。 客户端将这些消息存储在本地缓存中。 缓存的大小由你在此处指定的“Prefetch 计数”属性的值决定。
有关详细信息,请参阅中的“预提取”部分 https://azure.microsoft.com/documentation/articles/service-bus-performance-improvements/
默认值: -1使用会话 选择此复选框可使用 Service Bus 会话从队列或订阅接收消息。 配置 身份验证 属性:
使用此选项 要执行此操作 访问控制服务 选择此项可使用 ACS 进行身份验证并提供以下值:
- 输入服务总线访问控制服务 STS URI。 通常此 URI 的格式如下:
https://<namespace>-sb.accesscontrol.windows.net/
- 输入服务总线命名空间的颁发者名称。
- 输入服务总线命名空间的颁发者密钥。从 BizTalk Server 2013 R2) 开始的共享访问签名 (新 选择此项可使用共享访问签名 (SAS) 进行身份验证,并提供 SAS 密钥名和密钥值。 在“属性”选项卡的“中转消息属性命名空间”中,输入适配器用于将中转消息属性作为消息上下文属性写入BizTalk Server收到的消息的命名空间。 如果要提升中转消息属性,请选择“提升中转消息属性检查框。
选择“确定”。
选择 “接收”处理程序和 “接收”管道。 选择“确定”,保存所做更改。 创建接收位置 提供了一些指导。
将消息发送到服务总线
在BizTalk Server管理控制台中,右键单击“发送端口”,选择“新建”,然后选择“静态单向发送端口”。
创建发送端口 提供了一些指导。
输入“名称”。 在 “传输”中,将 “类型 ”设置为 “SB-Messaging”,然后选择“ 配置”。
配置 “常规 ”属性:
使用此选项 要执行此操作 目标 URL 输入部署服务总线队列的 URL。 通常此 URL 的格式如下:
sb://<namespace>.servicebus.windows.net/<queue_name>
批刷新时间间隔 指定一个时间跨度值来表示向队列发送消息批或刷新主题的时间间隔。 默认值为 20 毫秒。
有关服务总线队列和主题的批处理的详细信息,请参阅 中的https://azure.microsoft.com/documentation/articles/service-bus-performance-improvements客户端批处理部分。打开超时 指定一个时间跨度值来表示完成信道打开操作的时间。
默认值: 1 分钟发送超时 指定一个时间跨度值来表示完成发送操作的时间。
默认值: 1 分钟关闭超时 指定一个时间跨度值来表示完成信道关闭操作的时间。
默认值: 1 分钟配置 身份验证 属性:
使用此选项 要执行此操作 访问控制服务 选择此项可使用 ACS 进行身份验证并提供以下值:
- 输入服务总线访问控制服务 STS URI。 通常此 URI 的格式如下:
https://<namespace>-sb.accesscontrol.windows.net/
- 输入服务总线命名空间的颁发者名称。
- 输入服务总线命名空间的颁发者密钥。从 BizTalk Server 2013 R2) 开始,共享访问签名 (新的 选择此项可使用共享访问签名 (SAS) 进行身份验证,并提供 SAS 密钥名和密钥值。 在“ 属性 ”选项卡中,输入 用户定义的中转消息属性的命名空间 ,其中包含要写入服务总线的传出消息的 BizTalk 消息上下文属性。 所有命名空间属性都作为用户定义的中转消息属性写入消息。 当写入作为异步传输消息属性的属性时,适配器将忽略该命名空间。 它仅将该命名空间用于确定要写入哪些属性。
还可以输入 BrokeredMessage 属性的值。 BrokeredMessage 属性(包括分区键)中介绍了这些属性。
选择“确定”,保存所做更改。