基于64核处理器的高并发XML请求响应框架
目前由于项目的需求,正着手实现一个基于64核处理器的高并发XML请求响应框架,当然这里的64核处理器是基于工控机的64核处理器,通用处理器目前市场貌似还没有这么多处理器核的。众所周知,XML文档的处理是很消耗处理器资源的,特别是XML文档的解析,因此,可以采用高并发机制来负责XML文档解析。整个系统由一个64核的工控机(运行linux)和一个或者多个4核服务器组成(由于64核工控机非常贵,目前还只能采购一台),四核服务器运行linux和apache服务器,apache用于接收客户端(浏览器)提交的XML文档处理请求,比如查询,加密或者签名等操作,四核服务器和64核工控机之间由万兆网络连接。
核心思想是将XML文档以字节流的方式发送给64核机器,64核机器基于epoll模型监听请求,并维持一个超大量线程的XML文档解析线程池,用于解析XML文档,并将解析好的XML结构体发送给4核服务器。大家可能有疑问了,XML文档解析后的结构体肯定非常复杂,比较包含大量指针数据,数据通过网络发送给四核处理器后,XML解析器如何访问指针呢?(呵呵,这个问题我们已经解决了,下次再开一个新的随笔详细介绍吧。)
整个实施过程中涉及高效的异步通信实现和高并发的线程如何正确的执行等问题,异步通信则采用目前linux最新的epoll模型,这也是许多网游服务器所采用的通信模式,支持超大规模的客户端连接访问请求,以后准备改用lievent实现,它是基于epoll模型的封装,估计实现得比我好!高并发线程则通过epoll模型中的事件机制来唤醒线程池中的线程。
浙公网安备 33010602011771号