问题描述
功能描述:客户端通过WCF把数据上传到服务器上(服务器有三台,分别是A,B,C,三台机器上都含有相同的WCf服务),客户端配置文件中就一个WCF访问地址(A对外发布的WCF地址),我想在对外发布的这个WCF(A机器上)上做一些分发的功能,在A机器上截获WCF请求,然后根据上传的数据判断应该调用那台服务器上WCF服务然后保存数据,如果含有返回数据的,也从通过A机器上调用返回功能简述:也就是客户端只有一个WCF的固定地址,然后请求到了IIS宿主之后,这个WCf起到一个分发请求到其他机器,并通过这个WCF把相应的数据返回,我想请教一下我应该怎么做,思路是什么?是否应该在iis中使用httpmodle截获请求,然后动态请求b,c两台机器的WCF服务,然后再返回?,还是这个WCf服务中添加一个WCF服务,然后再去动态请求?希望做过负载和分发的朋友,给些建议,我一直就没搞清楚,我的思路对不对,怎样效率会高一些
解决方案
解决方案二:
没搞过这么难的。
解决方案三:
晕,没人理解吗
解决方案四:
必须要自己做负载平衡吗?我觉得用windows的NLB(网络负载平衡)应该就可以了吧。设置也不难,就是建立一个cluster,给一个ip,然后把ABC三台机器作为节点加进去。request来到后,NLB就检查负载,决定分发到哪台机器上去。外面访问cluster的ip.参考
解决方案五:
主要的问题是我这里,可能的策略是保存的客户数据太大,可能需要指定请求去那台服务器上保存数据,不是随机的负载均衡
解决方案六:
引用3楼findcaiyzh的回复:
必须要自己做负载平衡吗?我觉得用windows的NLB(网络负载平衡)应该就可以了吧。设置也不难,就是建立一个cluster,给一个ip,然后把ABC三台机器作为节点加进去。request来到后,NLB就检查负载,决定分发到哪台机器上去。外面访问cluster的ip.参考http://best0.blog.51cto.com/444987/100526
,就是说,我想控制根据一定的业务逻辑实现这种路由分发规则
解决方案七:
那没办法,只能自己实现了。
解决方案八:
听起来有点像RoutingService,不过我也不太了解RoutingService.你自己看看有没有帮助吧Routing
解决方案九:
嗯RoutingService无法做到自动的负载均衡,这个均衡的过程要你自己实现了。
解决方案十:
RoutingService不行吗?看这个介绍有点像TheRoutingServiceisagenericSOAPintermediarythatactsasamessagerouter.ThecorefunctionalityoftheRoutingServiceistheabilitytoroutemessagesbasedonmessagecontent,whichallowsamessagetobeforwardedtoaclientendpointbasedonavaluewithinthemessageitself,ineithertheheaderorthemessagebody.我的理解是根据MessageContent的不同,route到不同的Endpoint上去。
解决方案十一:
lz好像不是要负载均衡,而是:引用5楼labthink的回复:
,就是说,我想控制根据一定的业务逻辑实现这种路由分发规则
解决方案十二:
引用8楼fangxinggood的回复:
嗯RoutingService无法做到自动的负载均衡,这个均衡的过程要你自己实现了。http://msdn.microsoft.com/en-us/library/9w7b4fz7.aspx
根据预定义的逻辑,比如actionname,endpointname等进行转发可以。上面的url贴错了:
解决方案十三:
引用11楼fangxinggood的回复:
引用8楼fangxinggood的回复:嗯RoutingService无法做到自动的负载均衡,这个均衡的过程要你自己实现了。http://msdn.microsoft.com/en-us/library/9w7b4fz7.aspx根据预定义的逻辑,比如actionname,endpointname等进行转发可以。上面的url贴错了:http:……
,看了一下这篇文章,我感觉满足不了我的要求,我的意思是暴露给客户端的服务就是一个定死的地址,然后暴露出来的这个服务接受到请求之后,再判断然后分发,客户端只知道一个服务地址,这篇文章里,客户端还是预先配置好了两个服务啊
解决方案十四:
因为我这边的框架里,客户端那边的程序是需要下载的,而上传服务策略可能有所调整,所以可能存在有些客户端没有下载最新的版本程序,而不能享受新的服务,我就想,这个暴露的服务地址是不变的,然后后台的策略无论怎么调整,因为地址没有变化,所以不会影响客户端
解决方案十五:
你没仔细看。我在示例里配置的是两个服务,自然需要两个endpoint。其实暴露给客户的只有一个ip,添加完引用后会在客户端生成两个endpoint。因为是sample所以在一个客户端调用了两个服务地址。使用routingservice之后,客户端只会看到一个地址。另外根据filter策略,比如将用户arouting到service1,将用户brouting到service2看我第二篇blog:
解决方案:
如果不冒昧的话,能够给我发一下,http://blog.csdn.net/fangxinggood/article/details/6872015,这个地址的示例代码?
解决方案:
我邮箱,xiaosun830910@163.com