http://www.cnpetweb.com/a/xinxizhongxin/lanmu9/2012/0217/34128.html
大型架构.net平台篇(中心层均衡负载WCF)
2012-02-17
如图所示,圈了圆圈的处所,底本这个处所该当有4个 int的参数,成果这里提示仅有3个。
事业是一切,名号只是虚声。第二项目组 中心层均衡负载WCF
劳动是人类存在的根蒂根基和手段,是一小我在体格、聪明和道德上臻于完美的源泉。
在第一项目组的文章里,简单介绍了一下怎么在WEB层做均衡负载,首要用到的软件是Nginx.这里为啥引用中心层的概念呢?
最简单的安排体式格式: WEB层->接见DB, 这里直联数据库的做法,就是二层架构,WEB层和DB可以放在不合一个办事器上。在用户量和并发量大的时辰,WEB层和DB压力都很大,并且还缺乏扩大性,所以大型架构都邑采取三层的体式格式
三层架构安排体式格式:WEB层->中心层->DB层,WEB层不会直联数据库,WEB层,中心层,DB可以放在不合的办事器上。引用中心层的益处在于减轻了WEB层和DB压力,中心层专注于处理惩罚逻辑相干的营业,并且还进步网站的安然性,即使WEB层的办事器被攻破,也是没法获取到数据库的帐号和数据。三层架构的本能机能如下:
WEB层:只存眷界面的显现,经由过程调中心层的成果获取数据来显现,不成以直接调用数据库取数据
中心层:只存眷营业逻辑和调用数据库的数据
DB层:只安排数据库
在.net平台,中心层可以选择Webservice, WCF等等,推敲到安然性等原因,WCF在今朝是很是好的选择。
WCF:若是不清楚可以网上搜刮一下,应用起来和webservice是斗劲类似的,开辟调试可能会麻烦点,熟悉了就感觉没什么麻烦的。
以下为.net平台下应用wcf作中心层的三层架构图
用WCF如何做均衡负载?
例如:中心层可以分三大块营业逻辑,订单办事(10001),商品办事(10002),用户办事(10003)。WCF安排成windows办事模式,即占用一个端口的windows过程
办法一:经由过程WEB层的分布式安排,中心层也跟着WEB层做响应的分布式安排,这个办法最简单,但不属于真正的均衡负载。
1.中心层安排
192.168.1.11 10001,10002,10003 这个办事器安排了三个WCF,端标语分别是10001,10002,10003
192.168.1.12 10001,10002,10003 这个办事器安排了三个WCF,端标语分别是10001,10002,10003
192.168.1.13 .....
.....
2.WEB层调用
WEB层办事器A:设备终结点为192.168.1.11的三个终结点
WEB层办事器B:设备终结点为192.168.1.12的三个终结点
WEB层办事器C:.....
.....
办法二:WEB层动态加载终结点,实现均衡负载的调用,本人未实践这种办法,理论上是可行的。
1.中心层安排
192.168.1.11 10001,10002,10003 这个办事器安排了三个WCF,端标语分别是10001,10002,10003
192.168.1.12 10001,10002,10003 这个办事器安排了三个WCF,端标语分别是10001,10002,10003
192.168.1.13 .....
2.各个WEB层读取同一份设备文件,设备的内容为各个办事的接口名和IP和端口,加载后生成数组
string []OrderService;
OrderService[0]="192.168.1.11:10001";
OrderService[1]="192.168.1.12:10001";
OrderService[2]="192.168.1.13:10001";
....
3.WEB层调用
经由过程随机算法,获取须要调用IP和端口
int index=new Radmon().Next(0,OrderService.Length);
string orderService=OrderService[index];
//最后调用响应IP和端口上的办事歌德