DIOCP开源项目-利用队列+0MQ+多进程逻辑处理,搭建稳定,高效,分布式的服务端
2014-05-25 09:11
393 查看
最近头脑里面一直在想怎么样让能让大家基于DIOCP上写出稳定的服务端程序。很多朋友问我,你DIOCP稳定吗,我可以用他来做三层服务器吗? 当时我是这样回答的,我只能保证DIOCP底层通信的稳定。
说实话,服务端要稳定,并不容易,写过服务端的程序员都清楚。特别是这种可以直接操作指针,自己分配内存和释放内存的语言(想C++, C, Delphi),一不小心就一个坑,一个坑可能就会引发,内存的释放越界,访问非法地址。导致整个进程的直接奔溃。
经过一些研究和咨询,我可以利用多进程来实现通信层和逻辑层的彻底独立,还可以将逻辑层分布到局域网的其他电脑,进行逻辑的分布式。通讯层单独的做数据转发,即使逻辑层,一不小心奔溃,还可以投递到另外的逻辑处理服务进程, 多进程直接使用socket(0MQ)进行通信。这样大家可以专注于逻辑进程的编写,甚至可以单个逻辑进程采用单线程的方式编写,这样就可以避免多线程代理的居多麻烦,然后用0MQ投递到通讯层进行数据的返回。
草图如下:
DEMO代码正在编写中,请关注DIOCP项目。
>>>>>>DIOCP讨论群:320641073
>>>>>>SVN源码和DEMO下载:https://code.google.com/p/diocp/
说实话,服务端要稳定,并不容易,写过服务端的程序员都清楚。特别是这种可以直接操作指针,自己分配内存和释放内存的语言(想C++, C, Delphi),一不小心就一个坑,一个坑可能就会引发,内存的释放越界,访问非法地址。导致整个进程的直接奔溃。
经过一些研究和咨询,我可以利用多进程来实现通信层和逻辑层的彻底独立,还可以将逻辑层分布到局域网的其他电脑,进行逻辑的分布式。通讯层单独的做数据转发,即使逻辑层,一不小心奔溃,还可以投递到另外的逻辑处理服务进程, 多进程直接使用socket(0MQ)进行通信。这样大家可以专注于逻辑进程的编写,甚至可以单个逻辑进程采用单线程的方式编写,这样就可以避免多线程代理的居多麻烦,然后用0MQ投递到通讯层进行数据的返回。
草图如下:
DEMO代码正在编写中,请关注DIOCP项目。
>>>>>>DIOCP讨论群:320641073
>>>>>>SVN源码和DEMO下载:https://code.google.com/p/diocp/
相关文章推荐
- DIOCP开源项目-高效稳定的服务端解决方案(DIOCP + 无锁队列 + ZeroMQ + QWorkers)
- DIOCP开源项目-高效稳定的服务端解决方案(DIOCP + 无锁队列 + ZeroMQ + QWorkers) 出炉了
- 使用.NET Core搭建分布式音频效果处理服务(五)利用消息队列提升水平扩展灵活性
- DIOCP开源项目-Delphi高性能无锁队列(lock-free)
- 搭建一个服务器框架,进程间利用管道通信,线程处理数据
- DIOCP开源项目-Delphi高性能无锁队列(lock-free)
- 利用开源的Gearman框架构建分布式图片处理平台[原创]
- 如何更加安全、高效地利用开源项目
- 服务端小白利用spring boot搭建项目
- 利用开源的Gearman框架构建分布式图片处理平台
- DIOCP开源项目-DIOCP3直接发送对象,帮你处理粘包问题
- Github网站加载不完全,响应超时,如何解决 Github是一个代码托管平台和开发者社区,开发者可以在Github上创建自己的开源项目并与其他开发者协作编码。毫不夸张地说,高效利用Github是一
- 如何更加安全、高效地利用开源项目?
- 文本深度表示模型Word2Vec 简介 Word2vec 是 Google 在 2013 年年中开源的一款将词表征为实数值向量的高效工具, 其利用深度学习的思想,可以通过训练,把对文本内容的处理简
- windows端搭建svn服务器 客户端xcode利用svn提交项目到服务端 流程全纪录
- 利用开源的Gearman框架构建分布式图片处理平台
- 如何更加安全、高效地利用开源项目
- 利用SOLR搭建企业搜索平台 之六 (分布式题外话)linux ssh 免密码登陆
- .NET开源项目的前世和今生系列 之 .NET开源压缩文档处理的前世和今生
- 准备启动一个开源项目 - 技术族谱 - 先期利用Goolge云计算平台