Home > Erlang探索, 体系结构 > whatsapp深度使用Erlang有感

whatsapp深度使用Erlang有感

April 30th, 2013

原创文章,转载请注明: 转载自系统技术非业余研究

本文链接地址: whatsapp深度使用Erlang有感

这么多年过去了,社区还在讨论erlang是不是小众语言,各种怀疑的时候,whatsapp已经把erlang用到了极致。

logo-text-ver-color

whatsapp是什么? 参见它的 官网

WhatsApp Messenger is a cross-platform mobile messaging app which allows you to exchange messages without having to pay for SMS.

更为搞笑的是 主要开发者Rick Reed(rr@whatsapp.com),之前在Yahoo!, SGI工作,有着深厚的系统性能的背景。

在2012年开发push服务器的时候:efsf2012-whatsapp-scaling

Joined WhatsApp in 2011,New to Erlang

完全是个新手。

在2013年开发多媒体支持系统的时候:reed-efsf2013-whatsapp

Joined server team at WhatsApp in 2011,No prior Erlang experience

2-3年后他已经是Erlang的最高级别的行家了。

从他的二篇ppt的内容来看, 他把erlang的特性发挥到了极致,利用到了它最好的vm、 集群基础设施、数据库mnesia, 消除了非常多的数据Scale、内存池和锁的问题, 提到的技术和修正点非常值得我们参考。

虽然大部分的解决方法我们在日常都差不多用过。但是他很系统的整理出来,用在商业系统了,这是个非常大的飞跃。

下面摘抄几个数据,希望能让继续怀疑erlang的人能重新思考下:

whatsapp后台架构以erlang为主:
wa1

二百多万的长连接push服务器:
wa4

whatsapp数据集mnesia的规模:
wa2

生产系统的数据:
wa3

每秒的消息数:
wa6

媒体的报道:传Facebook与Whatsapp展开收购谈判:
wa5

小结:任何系统开发到最后,都是依靠操作系统,硬件提供的能力,需要解决的问题都是一样的,没有捷径!
hard working是必须的,依靠erlang团队做了大量的工作,这个为业务定制系统的工作可以变成轻松好多!
停止怀疑吧,加入这个阵营,收获不会少的。

祝玩得开心!

Post Footer automatically generated by wp-posturl plugin for wordpress.

  1. kayjack
    May 7th, 2013 at 10:50 | #1

    算是erlang的介绍贴,请问余兄,目前你用erlang在做哪方面的工作?

    Yu Feng Reply:

    我们在做mysql云平台开发,大概10万erlang代码~

  2. piboyeliu
    May 10th, 2013 at 14:51 | #2

    我在搞个 erlang 的千万长连接, 我想知道mnesia 可以用来保存连接信息不?

    Yu Feng Reply:

    mnesia很适合~

    piboyeliu Reply:

    原型很快调通了。 但越来越感觉 mnesia 不适合, mnesia 采用 Pid! 通讯方式, 如果接入端使用extra_db_nodes 方式, 数据量大的化, 感觉会阻塞。 还有又要处理 network partition 的问题。感觉还是使用nosql 的mem数据库好点。

  3. Bico
    June 16th, 2013 at 16:36 | #3

    余哥你好,我是即将毕业本科生,学习erlang三个月了,现在做游戏开发主要是写业务逻辑暂时觉得无难度,想进一步深入学习或者应用erlang,请余哥指教下大概可以往哪方面做应用或者学习,谢谢!

    Yu Feng Reply:

    多阅读优秀的代码,比如说rebar。 然后动手做些项目,比如用mochiweb做点啥。多练习,多学人家的长处。

    Bico Reply:

    好,非常感谢您,以后有erlang疑难杂症还望您指教,谢谢!

  4. peterszw
    July 5th, 2013 at 00:38 | #4

    二百多万on a single box ! 这box 的硬件不知道要多少钱…

  5. Chance
    August 20th, 2013 at 14:05 | #5

    你好!本人目前菜鸟一个,想请问一下push服务器的长连接应该都是只用于推送的吧,而发送语音跟视频应该是通过其它的通道的吧?微信之类的即时通信也是如此吗?

    Yu Feng Reply:

    语音和视频属于实时数据,肯定和push走不同的路。

  6. February 20th, 2014 at 11:36 | #6

    余峰哥的博客?

    Yu Feng Reply:

    是哦

Comments are closed.