IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    如果让你做twitter好友在线功能

    longhao (longtask@gmail.com)发表于 2010-09-09 06:40:39
    love 0

        编程珠玑的习题上谈到电话的排序和电话是否占线到问题,当然,我们可以把问题分开,简单到讨论用户是否在线的功能实现,问题是:如果用户超过1亿,这就不是一个简单到问题了。

        需求:

    • 1.5亿用户,传入ID,给出是否在线。
    • 分布式系统;
    • 每台计算机尽量多的支持用户;

        第一时间想到的:

         memcached,用这个就可以了,问题是,我只需要存储bit,memcached存储的是对象。如果采用它,肯定造成资源浪费,而且浪费是巨大的。代码还是要自己写的。

        思路:(就不分析需求了)

        按照需求应该通过计算硬件的带宽,内存,cpu来给出一个合理的配置,开发应该在配置到基础上开发产品。状态数据不需要保存,数据肯定放在内存中,这样,带宽就是性能瓶颈了。

        每个key对应一个bit位,通过服务暴露出去的可以直接是true或者false。开发语言用C较为合适。

        如何分布可以参考memcached的实现原理,这方面的实现方法应该是一样的……



沪ICP备19023445号-2号
友情链接