一直以来我们使用的WCF服务,作为APPS端,采用虚拟化的技术,将多个应用部署到很多虚拟机上。我们暂且称之为AppFarms。在AppFarms中会牵扯到一个 负载均衡(Network Load Balancing)的问题,我们要达到的目的是,将多台虚拟化之后的多台机器,做成cluster。Client 访问时,能够根据服务器负载的情况,自动分配到相应的apps。这样,可根据用户的需求量来增加Apps的个数来实现。当然了,Apps的个数不是无限制的,达到个数的上限后,可通过增加线路的实现,换句话说,就是多个群组。用户可以选择任意一条线路。
既然是Farm,当然有这其中会有Farmer,下面从Farmer做的事情粗略展开
调度管理
分布之后调度,会变的比较复杂,原来的多件事情可以分派给多台机器来完成,同时也能将一件任务分给多台机器顺序或无序的完成,这个取决于任务的粒度。
这种调度,要保持它的可持续性,如果某个任务由于某个原因,发生异常中断,监控台能够检测到,并可重复执行。
部署管理
- 部署的难度提高了,升级一次服务,要到升级到所有牵扯到的服务器
- 我们一般采用以windows系统服务的方式来部署,方便管理、日常的运维。
监控管理
分布之后,管理是需要集中的,否则会增加系统日常监控的难度。
这个时候,需要我们开发相应的小工具来方便我们的日常的管理和维护,甚至是开发。
当然了,对于Coder来讲,可能更多关注的是如何去实现。
WCF的使用
宿主
一般我们使用 WINDOWS 服务或IIS托管,在调试的时候使用Console来托管WCF服务,最大的好处是利于调试。
服务的使用
有单调服务、会话服务、持久服务。在这里我们经常使用单调服务,部署到NLB群集当中去。这样可以充分利用cluster的优势。
关于本篇文章附件可到 http://www.oecp.cn/hi/csh/blog/2296免费下载,本篇文章转载自 OECP社区