whatsapp深度使用Erlang有感
原创文章,转载请注明: 转载自系统技术非业余研究
本文链接地址: whatsapp深度使用Erlang有感
这么多年过去了,社区还在讨论erlang是不是小众语言,各种怀疑的时候,whatsapp已经把erlang用到了极致。
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为主:
二百多万的长连接push服务器:
媒体的报道:传Facebook与Whatsapp展开收购谈判:
小结:任何系统开发到最后,都是依靠操作系统,硬件提供的能力,需要解决的问题都是一样的,没有捷径!
hard working是必须的,依靠erlang团队做了大量的工作,这个为业务定制系统的工作可以变成轻松好多!
停止怀疑吧,加入这个阵营,收获不会少的。
祝玩得开心!
Post Footer automatically generated by wp-posturl plugin for wordpress.
算是erlang的介绍贴,请问余兄,目前你用erlang在做哪方面的工作?
Yu Feng Reply:
May 7th, 2013 at 1:39 pm
我们在做mysql云平台开发,大概10万erlang代码~
我在搞个 erlang 的千万长连接, 我想知道mnesia 可以用来保存连接信息不?
Yu Feng Reply:
May 10th, 2013 at 3:57 pm
mnesia很适合~
piboyeliu Reply:
June 17th, 2013 at 10:16 pm
原型很快调通了。 但越来越感觉 mnesia 不适合, mnesia 采用 Pid! 通讯方式, 如果接入端使用extra_db_nodes 方式, 数据量大的化, 感觉会阻塞。 还有又要处理 network partition 的问题。感觉还是使用nosql 的mem数据库好点。
余哥你好,我是即将毕业本科生,学习erlang三个月了,现在做游戏开发主要是写业务逻辑暂时觉得无难度,想进一步深入学习或者应用erlang,请余哥指教下大概可以往哪方面做应用或者学习,谢谢!
Yu Feng Reply:
June 16th, 2013 at 6:23 pm
多阅读优秀的代码,比如说rebar。 然后动手做些项目,比如用mochiweb做点啥。多练习,多学人家的长处。
Bico Reply:
June 16th, 2013 at 7:33 pm
好,非常感谢您,以后有erlang疑难杂症还望您指教,谢谢!
二百多万on a single box ! 这box 的硬件不知道要多少钱…
你好!本人目前菜鸟一个,想请问一下push服务器的长连接应该都是只用于推送的吧,而发送语音跟视频应该是通过其它的通道的吧?微信之类的即时通信也是如此吗?
Yu Feng Reply:
February 20th, 2014 at 3:07 pm
语音和视频属于实时数据,肯定和push走不同的路。
余峰哥的博客?
Yu Feng Reply:
February 20th, 2014 at 3:07 pm
是哦