C++大数据数据分发

lokyu 2014-07-09 05:56:25
大神们,我想做一个数据分发的东西,简单来说就是:有一个server对应多个client,client会向server同一时刻发送多个变量的值,这些变量保存在server的内存中,同时client会要求从server中获取某些变量,通过向server注册这些变量,server端不断的把新的变量值发给client。比如:client1发送变量为电压,电流,需要获取电平和角度;client2发送电平和角度,需要获取电压和电流;client3发送电压和角度,需要获取电流和电平;这些变量的的数据量都很大,比如一秒钟就会有20个电压的值要发出,而每个client可能需要发的变量也有上千个甚至更多,需要获取的也会是多个变量的。这东西只在局域网内使用。(注:不使用数据库,因为读写数据库比较慢)不知道我说明白了没有,请问有什么好的方案或者现成可以用的东西简单一点完成的吗?求指教,谢谢
...全文
552 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zilaishuichina 2014-07-10
  • 打赏
  • 举报
回复
自己写网络层呗,然后该收数据的收,该发数据的发 嫌自己写网络层麻烦,可以考虑用boost库啊
赵4老师 2014-07-10
  • 打赏
  • 举报
回复
为什么不使用内存数据库呢?
版主大哥 2014-07-10
  • 打赏
  • 举报
回复
可以试试,如果瓶颈在数据库,就用内存数据库 没弄过发送频率这么快的,但是有的项目,处理包请求也是多的,使用起来不觉的慢 所以就这么问。
lokyu 2014-07-10
  • 打赏
  • 举报
回复
引用 6 楼 xihu1364 的回复:
(注:不使用数据库,因为读写数据库比较慢) 楼主测试过吗?为什么会觉得慢呢?
我没测试过,不过我想读写内存肯定应该比读写文件来的快吧,主要是我这个应用里,变量发送和读取的频率会比较快,1个变量发送和接收可能在20HZ,而每个client可能会有上千个甚至更多的变量。谢谢回复
yangyunzhao 2014-07-10
  • 打赏
  • 举报
回复
引用 6 楼 xihu1364 的回复:
(注:不使用数据库,因为读写数据库比较慢) 楼主测试过吗?为什么会觉得慢呢?
必然的,你可以了解一下目前的实时库技术
yangyunzhao 2014-07-10
  • 打赏
  • 举报
回复
网络用libevent 数据库用fastdb,不怕麻烦就自己利用mmap写一套数据管理
版主大哥 2014-07-10
  • 打赏
  • 举报
回复
(注:不使用数据库,因为读写数据库比较慢) 楼主测试过吗?为什么会觉得慢呢?
yu22887659 2014-07-10
  • 打赏
  • 举报
回复
方案一:直接使用socket 自行网络传输。 可以使用 boost::asio 的网络模块。 方案二:使用数据库,这个情境可以试试 nosql 。需要搭建2台机子都可以访问到的数据库。 方案三:存到文件里,然后通过FTP,或者共享,或者批处理什么的,同步到本地,然后解析。
玄之丞 2014-07-10
  • 打赏
  • 举报
回复
方案一:直接使用socket 自行网络传输。 可以使用 boost::asio 的网络模块。 方案二:使用数据库,这个情境可以试试 nosql 。需要搭建2台机子都可以访问到的数据库。 方案三:存到文件里,然后通过FTP,或者共享,或者批处理什么的,同步到本地,然后解析。
lokyu 2014-07-10
  • 打赏
  • 举报
回复
首先谢谢俩位的回复,我也在想用内存数据库,但是因为以前没用过,所以不知道选哪个内存数据库比较好,另外boost以前也没用过,所以也不知道怎么用。。。能不能说的更详细一点?谢谢

5,530

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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