java分布式通信(续一)----网络架构

java分布式通信(续一)----网络架构_第1张图片

整个系统的架构如图所示,包括四层,每一层可以由若干结点来对数据和请求分流:

一.接口服务器(Interface Server):

               1.对外提供访问接口并接受请求,考虑到HTTP的广泛性,一般内置一个http服务器进程

               2.监控各dispatcher server的工作状态

               3.转发请求到其中的一个最优dispatcher中,这里的最优性判断以各dispatcher server的工作状态为依据,当然在这一层上不心请求的具体内容可以简单地采用轮询或随机算法.

二.消息分发服务器(Dispatcher Server):

              1.接受来自于接口服务器的请求

              2.解析请求,提取特征参数(一般是类似于用户帐号之类的东西,一个帐号下的数据会被分布到同一个结点上),然后对该参数执行hash函数,计算出目标数据所在的App Server,然后将请求转发给该App Server.

              3.事实上,在实际的项目中的处理比上面的介绍要更复杂一些,但伸缩性大大加强了.

三.应用服务器(App Server):

              1.执行业务逻辑,等同于集中式系统中的应用服务器,已经不存在分布式的特征了.所处理的数据就是自己数据库中的数据,与网络上的其他结点无关.

              2.被划分为多个逻辑组(group),同一个组中的服务器负载均衡

              3.考虑到数据库的双重备份,热切换和负载均衡,才用了多数据库单读多写策略.对于读,监控各数据库工作状态,选择一个最优数据库来提供数据;对于写,同时写所有的数据库,因此必须保证操作的事务性.

四.数据库服务器(DB Server):

              1.提供数据访问,没什么好说的,对于非事务性数据库需要在App Server层提供辅助措施;

五.结点之间的通信

              1.数据(请求,响应,异常)以网络格式异步并发传输.

更进一步的描述在后续blog中给出.

 

你可能感兴趣的:(java,工作,应用服务器,算法,网络应用)