服务站:构建WCF路由器,第2部分

在 2008 年 4 月的“服务站”部分中,我向您介绍了如何创建简单的路由器,以在调用客 户端与目标服务之间实现消息的透明流动。在此过程中,我回顾了重要的 Windows Communication Foundation (WCF) 寻址和消息筛选语义,您可以了解到如何设计路由器约定使其处理非类型化消息,以 及如何配置绑定和行为才能允许消息在不经路由器处理的情况下进行传递。在本期中,我将继续讨论该话 题,介绍对路由器采用更实用的方案时涉及的更多实现细节。

传递路由器方案

在第 1 部分中我已经提到,将传递路由器插入到客户端和服务之间时,客户 端的关系是与目标服务而不是路由器的关系。尽管必须要使用路由器可以理解的传输协议和消息编码器发 送消息,但消息的全部内容(包括安全性标头和可靠的会话等内容)并不是由路由器处理的。可能会应用 传递路由器的几种情况有负载平衡、基于内容的路由或消息传输。

服务器资源的负载平衡和工作分配非常适合网络负载平衡 (NLB) 设备,但更适合硬件负载平衡设备。 而且,在下列情况下,WCF 路由器对负载平衡会非常有用:承载服务的环境不具备这些昂贵的设备;安装 服务的物理基础结构不受您直接控制;需要基于特定于域的逻辑进行路由;应用程序只调用容易配置的轻 型路由解决方案。此类 WCF 路由器可用于向分散在同一台计算机内的多个进程中的服务或跨计算机分布 的服务分发消息。

不管分布模型如何,负载平衡路由器必定要用到几个核心功能。服务必须以某 种方式注册到路由器,这样才能将其包含在负载分配中。路由器必须能够确定服务类型和关联的端点,以 便正确转发消息。路由器必须具有分配负载的算法,如典型的循环方法或以某种形式或基于优先级进行路 由。

有时,在服务间分发消息是基于消息内容,而不是基于负载平衡。基于内容的路由器通常会 检查消息标头或消息正文来获取路由信息。例如,具有有效许可证密钥的客户端发出的消息可能以高优先 级转发到包含处理能力较高的服务器计算机的大型池,而具有试用许可证的客户端发出的消息将转发到包 含功能较弱的服务器的小型池。在这种情况下,路由器不仅要了解消息的转发目标,而且必须能够检查每 条消息(消息的标头或正文内容),然后再确定消息的转发目标。以下部分将讨论支持这些情况的相关路 由功能。

通过 Action 标头转发

在路由器上接收的消息具有两个寻址标头,这两个寻址标 头在将消息转发到正确的服务时会很有用:

To 标头指示端点的名称。如果此标头与目标服务匹配 而不与路由器匹配,则指示消息目标地址的服务端点的 URL。

时间: 2024-12-30 00:27:44

服务站:构建WCF路由器,第2部分的相关文章

服务站: 构建WCF路由器,第1部分

托管和使用 Windows Communication Foundation (WCF) 服务通常经历几个基本步骤:实现服务 .配置可以访问服务的端点.托管服务.生成 Web 服务描述语言 (WSDL) 文件或启用元数据交换,以便 客户端能够生成代理以调用服务.编写代码以使用其相关配置实例化代理.以及启动调用服务操作.您基 本不需要研究它的内部原理,但即使是在最简单的情况下,客户端和服务通道也要依赖兼容配置来处理寻 址语义和消息筛选,以确保调用了正确的操作. 有时,在客户端和目标服务之间引入中介

实例解析—用Linux操作系统构建的路由器

一.网络整体框架 网络结构如图,Linux路由器这台计算机标识为A,它与三个网段相连,192.168.1.0/24,10.0.0.0/8,172.16.0.0/16. A计算机必须拥有三块网卡,分别与三个网段相连. 假设: eth0与172.16.0.0相连, eth1与10.0.0.0相连, eth2与192.168.1.0相连. 二.具体网络设置 2.1配置eth0 首先来配置eth0.给这个网络接口分配地址172.16.1.1,运行下列命令: # ifconfig eth0 172.16.

实例解析:用Linux操作系统构建的路由器

Linux路由器这台计算机标识为A,它与三个网段相连,192.168.1.0/24,10.0.0.0/8,172.16.0.0/16. A计算机必须拥有三块网卡,分别与三个网段相连. 假设: eth0与172.16.0.0相连, eth1与10.0.0.0相连, eth2与192.168.1.0相连.首先来配置eth0.给这个 网络接口分配地址172.16.1.1,运行下列命令: # ifconfig eth0 172.16.1.1 netmask 255.255.0.0 为了使这个地址不再计算

WCF运行时框架的构建与扩展[共10篇]

WCF服务端运行时框架的构建 WCF服务端运行时架构体系详解[上篇] WCF服务端运行时架构体系详解[中篇] WCF服务端运行时架构体系详解[下篇] WCF服务端运行时架构体系详解[续篇] WCF客户端运行框架的构建 WCF客户端运行时架构体系详解[上篇] WCF客户端运行时架构体系详解[下篇] WCF扩展 通过"四大行为"对WCF的扩展[原理篇] 通过"四大行为"对WCF的扩展[实例篇] 通过自定义ServiceHost实现对WCF的扩展[原理篇] 通过自定义Se

谁有WCF入门到教程

问题描述 如题,最好是视频的教程 解决方案 解决方案二:<WCF架构入门-用VS2008构建WCF>http://blog.csdn.net/sahusoft/archive/2008/07/08/2625324.aspx解决方案三:支持!

WCF Data Service工具包

WCF Data Service工具包是一组WCF Data Service(OData的.NET实现),目的是使更容易地构建WCF Data Service,支持数据的任何存储上的OData服务而不需要深入的理解Linq,当然了,深入的理解Linq的非常必要的. 它诞生于现实的一些服务,诸如Netflix, eBay, Facebook, Twitpic等等公司的公开的服务,这个工具包已经在现有的产品中使用,被证明解决了一些有趣的问题,而且在工作中发挥了很大的作用. 在使用这个工具包之前需要知

10款中小企业必备的开源免费安全工具

很多企业特别是一些中小型企业在日常生产中,时常会因为时间.预算.人员配比等问题,而大大减少或降低在安全方面的投入.这时候,一些好的免费开源安全工具,无疑成为了这些企业降低成本的首选.下面,我将为大家推荐十款不错的免费开源安全工具. Nmap Nmap(Network Mapper)是一款免费开源的安全扫描工具,主要用于端口扫描.网络探测等.Nmap也是系统和网络管理员的最爱,常被用于监控主机或服务正常运行时间,管理服务升级计划和网络库存等任务.Nmap通常利用原始IP数据包来探测网络上可用的主机

文件管理器-dotnetfx3.exe文件这个文件是什么

问题描述 dotnetfx3.exe文件这个文件是什么 dotnetfx3.exe是个什么文件,有大神知道吗,最好给详细解答. 解决方案 Microsoft .NET Framework 3.0 是用于 Windows? 的新托管代码编程模型.它将 .NET Framework 版本 2.0 的强大功能与新技术结合起来,用于构建具有视觉上引人注目的用户体验的应用程序,实现跨技术边界的无缝通信,并且能支持各种业务流程.这些新技术有 Windows Presentation Foundation.W

私家珍藏:七款开源Linux网络服务系统

出色的软路由系统ClearOS 对于中小企业来说,有很多免费且开源的路由器和防火墙解决方案,甚至可以作为企业的选择.这类产品中,很多都提供局域网服务,如VPN服务.热点网关和通过强制网络门户以共享无线网络. 这里,编者发现了一些开源且免费的路由器项目,这些产品适合于包括小企业.中型.甚至与思科和Juniper规模相当的企业.闲言少叙,我们一起看看这七款开源且免费的Linux下的网络操作系统. 出色的软路由系统ClearOS ClearOS是一款基于CentOS和Red Hat Enterpris