快速业务通道

计划在C++建立仿Erlang式的分布式并行机制

作者 佚名技术 来源 程序设计 浏览 发布时间 2012-06-29

梳理了下需求,大体如下:

进程(Process)。进程是Erlang中一个虚拟的运行单位。既不是操作系统的进程,也不 是线程,而是比线程更加轻量的单位,更接近于协程。

命名进程(NamedProcess)。命名进程的好处是,你可以向一个不知道进程ID的进程发送 消息。由于进程可能会宕掉(crash),进程ID可能会发生变化,所以在考虑了异常的环境下 ,命名进程降低了编码的难度(你不再需要考虑进程crash检测和重建连接的过程)。

进程邮箱(Mailbox)。每个进程都拥有一个自己的邮箱,其他进程发送消息到该邮箱, 而进程在合适的时机从中取出消息并处理之。

定时器(Timer)。这个是属于最最基础的模块,用于多种用途,如超时检测等。

消息编码/解码(encode/decode)。将进程的请求(sync/async的函数调用)encode为网 络消息流,或将网络消息流decode回进程的请求。

消息发送/接收(send/receive)。发送(send)指将消息(Message)发送到目标进程( Process)的进程邮箱(Mailbox)中。接收(receive)则从进程邮箱(Mailbox)取出消息 (Message)。接收可以有选择性接收(selective receive),即按一定的匹配模式选择要 接收的消息。

进程链接与监控(link/monitor)。当两个进程链接时,一个挂掉后会通知另一个进程。

速错(fail fast)。这关乎资源管理(Resource Management)与异常处理(Exception Handling)。Erlang的哲学是发生不可恢复的错误时就立即死掉。而进程的资源(如内存、 打开的文件等等)需要被自动释放。

通用服务器(Server)。进程(Process)可能是一个普通的工作者(Worker),也可以 是服务器(Server)。通用服务器架构实现了一套高可靠的服务器模型。

大致想象了下实现,已经基本有谱。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号