zoukankan      html  css  js  c++  java
  • 基于libev面向分布式数据系统的C10K服务器设计

    物联网(M2M)是当前信息化的一个热点方向。具体到不同的行业就体现为各种不同的解决方案:远程电力控制系统、智能家居、智能交通、现代物流、远程可视化医疗系统等等。。。

    它们的一些共性是:

    1. 系统由前端设备、远程数据中心、和后端可视化终端组成。

    2. 前端由各种各样的嵌入式系统组成,集成各种专用数据模块或者传感器。 

    3. 系统用户最多可达到百万甚至千万级别,活跃用户可达到数十万,并发峰值在C10K级别。

    4. 设备实时性高,实时数据可达秒级别,每个数据包一般都经过压缩或者编码,内容很小。

    5. 远程设备通过局域网或者移动网络连接到internet,通过移动网络的设备对数据量有严格要求,比如每月流量最大不超过30M。

    6. 因为要做到实时双向数据同步及反馈,所有的设备几乎都实时在线。

    ...

    目标 

     为了实现高并发、多用户高实时的数据服务器,决定基于开源框架,开发一个可兼容特定http请求和sock服务的混合服务器,主要面向物联网分布式场景。

    风险评估

    优点:

    1. 目前网站的用户虽然多,但业务逻辑和数据处理相对简单和单一,定制的服务器可以有更优化的逻辑。

    2. 基于优秀的开源框架,可以体现更好的并发性。

    3. 通过可定制的网络数据处理逻辑将提供更好的实时性和用户体验。 

    4. 定制的服务器可方便地应用于其他类似行业以及解决方案中。  

    挑战:

    1. 新系统短期很难稳定,增加运维风险

    2. 增加开发代价

    3. 要求有较高的系统架构能力和实现能力 

    参考模型

    1)基于libev库

    2)参考nginx

    3)参考lighttpd

    4)参考libebb 


    系统概要框架

     

    系统详细设计 

    关于架构的详细设计,可参看这篇文章 http://www.cnblogs.com/inteliot/archive/2012/04/21/2461031.html ,包括细节都已经很详细了 

    实现

    现在基本通讯框架已经ok了。master-worker模式,短连接模式下普通机器配置能达到20K。

    下来开始整合业务逻辑,和mysql了。

    mysql部分架构准本参考篇帖子:http://www.cnblogs.com/inteliot/archive/2012/04/19/2457108.html 
    整个过程希望只对cache操作,调高写数据库的瓶颈,最终的方案,要看研究结果,没准还是用Redis呢。。。

    优化方向

    1)分层 、集群

    2)优化memcache层 ,分析数据流程和业务逻辑,希望整合 no-sql 等适合大数据量高性能的哈希数据库,进一步提高系统速率。

    3)可靠性、热备、容灾

    方案调研的过程中,发现已经有人在尝试类似的方案了,想法何其相似啊:

     http://www.cnblogs.com/inteliot/archive/2012/04/21/2461042.html

    持续更新中。。。

  • 相关阅读:
    SDN课程阅读作业(2)
    2019 SDN上机第5次作业
    第01组 Alpha事后诸葛亮
    Windows 7 64位安装cURL
    html 空白汉字占位符 
    申请一个免费美国手机号码
    搭建网站需要学习什么(转自知乎)
    Eclipse 项目有红感叹号
    CSS字体大小之em,px,百分比
    题目1013:开门人和关门人
  • 原文地址:https://www.cnblogs.com/inteliot/p/2454518.html
Copyright © 2011-2022 走看看