DIOCP开源项目-利用队列+0MQ+多进程逻辑处理,搭建稳定,高效,分布式的服务端

Mofen818 2014-05-25 09:21:39



最近头脑里面一直在想怎么样让能让大家基于DIOCP上写出稳定的服务端程序。很多朋友问我,你DIOCP稳定吗,我可以用他来做三层服务器吗? 当时我是这样回答的,我只能保证DIOCP底层通信的稳定。

说实话,服务端要稳定,并不容易,写过服务端的程序员都清楚。特别是这种可以直接操作指针,自己分配内存和释放内存的语言(想C++, C, Delphi),一不小心就一个坑,一个坑可能就会引发,内存的释放越界,访问非法地址。导致整个进程的直接奔溃。





经过一些研究和咨询,我可以利用多进程来实现通信层和逻辑层的彻底独立,还可以将逻辑层分布到局域网的其他电脑,进行逻辑的分布式。通讯层单独的做数据转发,即使逻辑层,一不小心奔溃,还可以投递到另外的逻辑处理服务进程, 多进程直接使用socket(0MQ)进行通信。这样大家可以专注于逻辑进程的编写,甚至可以单个逻辑进程采用单线程的方式编写,这样就可以避免多线程代理的居多麻烦,然后用0MQ投递到通讯层进行数据的返回。



草图如下:



DEMO代码正在编写中,请关注DIOCP项目。

>>>>>>DIOCP讨论群:320641073

>>>>>>SVN源码和DEMO下载:https://code.google.com/p/diocp/
...全文
349 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
gerenuk 2014-05-28
  • 打赏
  • 举报
回复
强烈关注。。点赞
lzd123 2014-05-28
  • 打赏
  • 举报
回复
强烈...哈哈,你懂的...
xgwzw0011 2014-05-28
  • 打赏
  • 举报
回复
顶贴 丰哥的作品
uuu83 2014-05-28
  • 打赏
  • 举报
回复
楼主很乐心,代码很容易理解,不错
tp机器猫 2014-05-28
  • 打赏
  • 举报
回复
弄出来了想在你的通信基础上搞个RPC,
lyosky 2014-05-28
  • 打赏
  • 举报
回复
支持楼主
oushengfen 2014-05-28
  • 打赏
  • 举报
回复
顶起来,呵呵,楼主非常热情。
Mofen818 2014-05-28
  • 打赏
  • 举报
回复
感谢关注,目前DEMO已经完成,初步实现了想要的功能。

可以上SVN下载



3个逻辑处理进程 + DIOCP通信服务器(5K连接) + 5个客户端
运行半个小时,无丢包,数据完整



无毒公主 10K连接 , 逻辑处理进程未知


50分钟,所有客户端关闭
Mofen818 2014-05-26
  • 打赏
  • 举报
回复
感谢大家关注,demo正在进行中...
xhz8000 2014-05-26
  • 打赏
  • 举报
回复
支持大作! 学习
hhhfff2010 2014-05-25
  • 打赏
  • 举报
回复
强烈支持 D10 大湿,三层 通讯 杰作
lyhoo163 2014-05-25
  • 打赏
  • 举报
回复
热切关注。。
haitao 2014-05-25
  • 打赏
  • 举报
回复
后台通讯部分,可以由iis/apache/nginx代劳 应用后台专注于业务、数据库。。。。

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧