《微软云计算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
相关文章
|
5月前
|
NoSQL Redis Windows
windows服务器重装系统之后,Redis服务如何恢复?
windows服务器重装系统之后,Redis服务如何恢复?
93 6
|
1月前
|
监控 搜索推荐 开发工具
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
128 2
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
|
1月前
|
人工智能 数据处理 C#
AI Dev Gallery:微软开源 Windows AI 模型本地运行工具包和示例库,助理开发者快速集成 AI 功能
微软推出的AI Dev Gallery,为Windows开发者提供开源AI工具包和示例库,支持本地运行AI模型,提升开发效率。
87 13
|
3月前
|
安全 Windows
【Azure Cloud Service】在Windows系统中抓取网络包 ( 不需要另外安全抓包工具)
通常,在生产环境中,为了保证系统环境的安全和纯粹,是不建议安装其它软件或排查工具(如果可以安装,也是需要走审批流程)。 本文将介绍一种,不用安装Wireshark / tcpdump 等工具,使用Windows系统自带的 netsh trace 命令来获取网络包的步骤
102 32
|
3月前
|
网络安全 Windows
Windows server 2012R2系统安装远程桌面服务后无法多用户同时登录是什么原因?
【11月更文挑战第15天】本文介绍了在Windows Server 2012 R2中遇到的多用户无法同时登录远程桌面的问题及其解决方法,包括许可模式限制、组策略配置问题、远程桌面服务配置错误以及网络和防火墙问题四个方面的原因分析及对应的解决方案。
217 4
|
3月前
|
C# Windows
【Azure App Service】在App Service for Windows上验证能占用的内存最大值
根据以上测验,当使用App Service内存没有达到预期的值,且应用异常日志出现OutOfMemory时,就需要检查Platform的设置是否位64bit。
63 11
|
4月前
|
边缘计算 安全 网络安全
|
4月前
|
开发框架 .NET API
Windows Forms应用程序中集成一个ASP.NET API服务
Windows Forms应用程序中集成一个ASP.NET API服务
123 9
|
4月前
|
Cloud Native 持续交付 云计算
云端新纪元:探索云原生技术的奥秘在当今数字化时代,云计算已成为推动企业创新和增长的关键动力。随着云平台的不断成熟,云原生技术应运而生,以其独特的优势引领着一场新的技术革命。本文将深入探讨云原生的核心概念、主要特点以及它如何改变现代软件开发和部署的方式,为您揭开云原生这一神秘面纱。
云原生是一种构建和运行应用程序的方法,充分利用了云平台的弹性、分布式本质以及声明式基础设施。本文将解析云原生的十二要素,微服务架构的优势,以及容器化、持续集成与持续部署(CI/CD)等核心技术的实践应用。通过深入浅出的方式,让读者理解云原生不仅是一种技术,更是一种文化和方法论,它正在重塑软件开发流程,提高资源利用率和应用系统的可扩展性与容错性。
|
4月前
|
应用服务中间件 Apache Windows
免安装版的Tomcat注册为windows服务
免安装版的Tomcat注册为windows服务
159 3