服务总线(SB 消息传送)适配器用于从服务总线实体(如队列、主题和中继)接收和发送。 可以使用 SB 消息 传送适配器将本地 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 组、 应用程序,然后展开应用程序。
右键单击 “接收端口”,选择“ 新建”,然后选择 One-Way 接收端口。
为其命名,然后选择“ 接收位置”。
选择 “新建”,为其指定 名称。 在“传输”部分中,从“类型”下拉列表中选择 SB-Messaging,然后选择“配置”。
配置 常规 属性:
用这个 要执行的操作 队列或订阅 URL 指定部署服务总线队列的 URL。 URL 通常采用以下格式:
sb://<namespace>.servicebus.windows.net/<queue_name>
打开超时 指定一个时间跨度值,该值指示通道打开操作所需完成的时间。
默认值: 1 分钟关闭超时 指定一个时间间隔值,该值指示通道关闭操作完成所需的时间。
默认值: 1 分钟接收超时 指定一个时间跨度值,该值指示接收操作完成的时间。
默认值: 10 分钟预提取计数 指定从服务总线队列或主题同时接收的消息数。 预提取允许队列或订阅客户端在执行接收操作时从服务加载其他消息。 客户端将这些消息存储在本地缓存中。 缓存的大小由此处指定的 Prefetch Count 属性的值确定。
有关详细信息,请参阅“预取数据”部分 https://azure.microsoft.com/documentation/articles/service-bus-performance-improvements/
默认值: -1使用会话 为使用服务总线会话以从队列或订阅接收消息,请选中此复选框。 配置 身份验证 属性:
用这个 要执行的操作 访问控制服务 选择此选项以使用 ACS 进行身份验证并提供以下值:
- 输入服务总线访问控制服务 STS URI。 URI 通常采用以下格式:
https://<namespace>-sb.accesscontrol.windows.net/
- 输入服务总线命名空间的颁发者名称。
- 输入服务总线命名空间的颁发者密钥。共享访问签名 (从 BizTalk Server 2013 R2 开始的新增功能) 选择此选项可以使用共享访问签名(SAS)进行身份验证,并提供 SAS 密钥名称和密钥值。 在“ 属性 ”选项卡中的 “中转消息属性命名空间”中,输入适配器用来将中转消息属性写入 BizTalk Server 接收的消息上的消息上下文属性的命名空间。 如果要提升中转消息属性,请选中“ 提升中转消息属性 ”复选框。
选择“确定”。
选择 “接收”处理程序和 “接收”管道。 选择“确定”,保存所做更改。 创建接收位置 提供了一些指导。
将消息发送到服务总线
在 BizTalk Server 管理控制台中,右键单击 “发送端口”,选择“ 新建”,然后选择 “静态单向发送端口”。
创建发送端口 提供了一些指导。
输入名称。 在 传输中,将 类型 设置为 SB 消息传送,然后选择“ 配置”。
配置 常规 属性:
用这个 要执行的操作 目标 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 属性(包括 分区键)中进行了描述。
选择“确定”,保存所做更改。