当前位置:  技术问答>linux和unix

linux_c++_服务器开发

    来源: 互联网  发布时间:2017-05-29

    本文导语:  大家好,小弟不才想向各位大神讨教点问题。 我现在遇到了这样一个问题:        大概有600多个点(就是客户端)需要向server端(需要开发的程序)发送数据包(格式都是T(type)L(length)V(value)类型),每...

大家好,小弟不才想向各位大神讨教点问题。

我现在遇到了这样一个问题:

       大概有600多个点(就是客户端)需要向server端(需要开发的程序)发送数据包(格式都是T(type)L(length)V(value)类型),每一个数据包都会带有0~5张的图片(每张300kb~500kb),都是长连接的,基本上1天下来会有200万左右的数据量,server端要把数据写入数据库并把图片保存到文件里。

        服务器是linux系统,8核cpu,16G内存

我初步的想法是:用一批线程去负责接收这600多个客户端发送来的数据,存到缓存里,,再开一批线程去处理数据,用一种管理机制(大概就是从缓存里取出一个数据包给处理线程1,再取出一个包给处理线程2,依次循环...)。

但是我感觉问题好多。
1:按照8核的cpu开8个接收线程8个处理线程(管理机制也得启动一个线程去分发数据包,可能还要开其他的检测线程)合适不合适?
2:如何让8个接收线程去接收600多个客户端的数据呢,每个数据包都是很大的,采用什么模型?select模型能行吗?
3:关于接收的数据存到缓存里这部分我有点糊涂,用队列吗?
4:管理机制从队列里取出一个数据包,怎么实现把这个包投递给线程?还有就是,投递数据包给线程的时候线程必须得是在挂起的状态(线程上一次数据已经处理完了,现在处理空闲状态)才能去投递,怎么知道这个线程是不是正在处理数据?
5:如果数据太多,接收线程一直在接收,处理线程处理不过来怎么办?
...........
还有很多问题。
小弟是个IT新手,现在用C++在做一些小型的客户端和服务端程序,对服务器的设计这方面很是头疼,还希望有大神指点,谢谢了。。。
    
       

|


你这种量级不是单机可以搞定的, 肯定要分布式存储,不管是kv还是文件系统。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 想学LINUX_C 转嵌入式发展~


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3