《微软云计算Windows Azure开发与部署权威指南》——6.5 AppFabric服务总线基础概念

简介:

本节书摘来自异步社区《微软云计算Windows Azure开发与部署权威指南》一书中的第6章,第6.5节,作者: 尹成 , 郝庭毅 , 张俊强 , 孙奉刚 , 寇睿明 更多章节内容可以访问云栖社区“异步社区”公众号查看。

6.5 AppFabric服务总线基础概念

在大型分布式应用程序中最常见的需求之一就是连通性,而应用程序的整合通常也是IT领域中花费最高、最麻烦的。目前大多数组织机构都采用企业服务总线(ESB)这一解决方案。

作为Windows Azure平台的一部分,服务总线让ESB模式在整个Internet领域中成为现实。服务总线提供了很多可以在典型的ESB解决方案中看到的体系结构特点,包括身份认证和访问控制、命名、服务注册、公共消息池等。对于AppFabric服务总线,这些组件必须设计为能够在云端操作,面向的是整个Internet领域,并且要有高度的可扩展性和联合性。

服务总线可以把本地的ESB产品和运行在云端的服务整合,使用大量第三方提供的服务,比如微软或者其他提供商,以及运行在企业防火墙之外的各种桌面级、RIA(Rich Internet Application)和Web应用程序。

1.中继连接
现今,大量诸如即时消息、在线多人游戏、使用比如BitTorrent协议的对等文件共享应用程序等占据了网络传输中很大的比重。这些应用程序都是通过写低层的网络逻辑来实现穿过防火墙和NAT(Network Address Transfer)设备以创建对等连接的。它们通常都通过一个中继服务来提供连接逻辑,如图6-43所示。


fcfd31419f54c393f6a3ed7152decc9ae4df9e9b

它的工作方式是:本地化服务通过出站端口连接中继服务并创建一个双向套接字绑定到特定的集结点地址来通信。客户端通过向中介服务发送消息实现与本地化的服务端通信。中继服务通过早已准备好的双向套接字连接将消息转发给本地化的服务端。客户端不需要和服务端建立连接,也不必知道服务端在哪,而服务端也不需要在防火墙上打开入站端口。

使用服务总线中继,可以充分利用单向消息、请求—响应、发布—订阅(多播)甚至异步和缓冲消息的优点。

2.直接互连性
除了中继通信,服务总线还提供了在客户端和服务端建立直接连接的能力以提高效能和吞吐量。客户端和服务端仍然先通过公共集结点地址与中继通信,然后中继会帮助它们直接互连以避免未来的中继转发。

中继基于客户端和服务端的探询信息,使用公共端口预测算法来实现二者的直接互连。中继服务查看探询信息,然后尽力预测接下来哪些端口会在两个NAT设备上打开。之后,中继向客户端和服务端提供信息,它们就可以尝试建立连接了。如果中继服务预测准确,连接将会建立成功;否则,中继会继续预测直到决定放弃直接互连,继续使用中继连接,如图6-44所示。


<a href=https://yqfile.alicdn.com/36e4741b77932c8aa712d383806120b4ded636e3.png" >

3.中继地址
理解如何为服务总线端点(endpoint)构造集结点地址对于使用服务总线非常重要。当公开一个基于TCP的端点时,地址构造如下。

sb://{namespace}.servicebus.windows.net/{name1}/{name2}/...

当要使用一个基于HTTP的地址时,只需要将“sb”协议替换为“http”或者“https”。

http://{namespace}.servicebus.windows.net/{name1}/{name2}/...

要注意地址必须以命名空间开始,以区别于服务总线上其他用户使用的端点。地址中包含的命名空间域名之后的部分可以随便起名字。

4.服务注册中心
服务总线提供服务注册中心来发布服务和为某个解决方案寻找服务端点。服务总线自动将公开端点发布在服务注册中心里,这样其他人通过浏览该服务命名空间的基地址来发现该服务,在这个命名空间基地址可以检索到包含该端点信息的订阅。

为了确保一个端点会出现在服务注册中心,必须配置该端点以被广泛发现。只需将端点与ServiceRegistrySettings行为关联起来,并将DiscoveryModel设置为DiscoveryType.Public。

5.与WCF整合
在.NET平台上使用服务总线的主要编程模型是WCF(Windows Communication Foundation)。在相应的SDK中带有一套可以自动将WCF服务端和客户端与中继服务整合的WCF中继绑定操作集。大多数情况下,只需要将当前使用的WCF绑定替换为服务总线绑定即可。

表6-2中列出了所有的服务总线绑定和对应的标准WCF绑定。像BasicHttpBinding、WebHttpBinding、WS2007HttpBinding和NetTcpBinding这些最常用的绑定都对应一个名字非常相似的服务总线绑定(仅仅在Binding前添加了Relay)。只有很少的中继绑定如NetOneWayRelayBinding和NetEventRelayBinding在WCF中没有相应的绑定。


e2a6920f3457d70a96b6c2d5935c95d078b9d391
相关文章
|
1月前
|
Kubernetes Linux Windows
第二章 Linux和windows部署helm 客户端
第二章 Linux和windows部署helm 客户端
31 0
|
2月前
|
Ubuntu Linux 数据安全/隐私保护
Windows11 使用 WSL2部署Ubuntu
在管理员PowerShell中运行命令启用Windows子系统Linux和虚拟机平台,但安装Ubuntu时遇到错误。解决方法是下载NoLsp_fix_WSL2工具,以管理员权限进入其目录,使用工具指向WSL的路径(例如 `C:\windows\system32\wsl.exe`)进行修复,然后能成功打开Ubuntu。
47 4
|
2天前
|
存储 传感器 算法
LabVIEW开发实时自动化多物镜云计算全玻片成像装置
LabVIEW开发实时自动化多物镜云计算全玻片成像装置
|
5天前
|
存储 文件存储 数据安全/隐私保护
Windows部署开源文件管理器File Browser并实现远程访问本地文件
Windows部署开源文件管理器File Browser并实现远程访问本地文件
26 1
|
6天前
|
安全 Linux 数据安全/隐私保护
Windows 部署 Elasticsearch + kibana 8.0 指南
Windows 部署 Elasticsearch + kibana 8.0 指南
12 0
|
7天前
|
开发框架 JavaScript 安全
WIndows Server 2016 部署 Web服务(简单篇)
WIndows Server 2016 部署 Web服务(简单篇)
|
7天前
|
安全 测试技术 网络安全
WIndows Server 2016 部署 PKI + 证书
WIndows Server 2016 部署 PKI + 证书
|
7天前
|
存储 文件存储 Windows
WIndows 2016 部署WDS
WIndows 2016 部署WDS
|
13天前
|
Ubuntu Windows
Windows WSL2上启用微软官方支持的systemd
Windows WSL2上启用微软官方支持的systemd