本文为云栖社区约稿,作者为:阿里云数据库技术专家黄大鹏
正文
非常有幸能见到Erlang之父Joe Armstrong,老爷子这次分享了Erlang的设计哲学,用现实中的例子讲述并发的原理,高可用的本质;他还分享了他个人30年的从业经历,题目是《How i got my grey hairs》,非常有趣,当然中间最重要的就是Erlang的发展历程,展示了Erlang是如何从一个简单的脚本语言演进到当前非常强大的高性能平台的。
茶歇环节和Joe聊了性能和新Feature方面的话题, Joe表示相对于性能软件开发人员更应该关注上层逻辑,从更高的层面去考虑优化这件事件,尽量考虑投入产出,另外性能优化从长远看应该交给硬件。 新Feature方面,老爷子表示不要盲目的追求开发新的功能,为了保持系统的简洁,高效, 优美,“常常当要加入一个东西时,你需要拿出另一个”。
第一个分享是由我来分享的,主要从在云上构建高可用,高性能的数据通道说起,阐述相关技术难点,Erlang为解决这些问题提供的帮助,以及我们在Erlang应用实践的经验,其中重点分享了我们如何解决当前Erlang vm的单poll set的问题,相关源码也已经开源,解决该问题对Erlang的网络性能有极大提升,会后很多同学对这块表示非常高的关注。
第二个分享是由环信的首席架构师一乐, 在环信最大的Erlang集群有800+,他们大规模的使用了Erlang自带的分布式数据库mnesia,证明了在这个规模上mnesia还是可靠的。另外他从业务讲述了多租户场景下的开发难点,为解决这个问题其核心是要调度问题。另外他还分享了pg2相关坑,建议不要使用pg2,也不要使用使用了pg2的库。
第三个分享的是来自Yunba的CEO张虎, 他提出软实时的本质是公平调度,在消息业务场景下要做到及时响应必须要软时间,而且要做抢占式的调度,不能应该一个逻辑单元速度慢,拖慢了别的单元,这在软实时调度方面Erlang有天生的优势。这次他还分享了在他们的业务场景下如何做负载均衡,如何优化短连接。最后他讲了Erlang的学习经验,上手是很容易的,目前最大的障碍在工具链上,希望社区能加快完善rebar这类的编译打包工具。