【SDCC 2016】Erlang 编程语言专题:Erlang 在数据链路、分布式系统的落地实践-程序员宅基地

技术标签: 编程语言  分布式系统  Joe-Armstrong  数据链路  Erlang  

【CSDN现场报道】2016年11月18日-20日,由CSDN重磅打造的年终技术盛会 —— “2016中国软件开发者大会”(Software Developer Conference China 2016,简称SDCC 2016)在北京京都信苑饭店隆重举行。本届大会云集了100多位国内外顶尖专家和技术大牛,共设新趋势和新实践2大主题会场,14个技术专题。面向国内外的中高端技术人员,聚焦最前沿技术及一线的实践经验,助力企业的技术升级和改造、全面提升技术人员的综合实力。


11月18日,在上午 Keynote 上,首次到访中国的 Erlang 之父 Joe Armstrong 以《如何设计高可靠的分布式并行系统》为主题,切身分享了自身深厚的并行编程经验。更在下午的 Erlang 编程语言专题论坛上,以诙谐的语言分享了自己从“Young Me”到“Dr Me” 的多彩程序人生,以及 Erlang 的设计、开源、使用。并和以阿里云 RDS 技术专家黄大鹏(武藏)、环信首席架构师兼IM技术总监梁宇鹏、Yunba 云巴 CEO 张虎为代表的国内 Erlang 企业开发团队代表一起围绕着 Erlang 与编程语言设计实践以及并行编程进行了深度的交流与探讨。本次会议由火币网 CTO 程显峰主持。

Erlang 语言设计者 Joe Armstrong

Erlang 之父 Joe Armstrong:Erlang 和我的编程人生

Armstrong 先生的分享主要分为两部分,一部分包含他是如何思考和解决问题的,另一部分是 Erlang 语言的演进。不过,用 Armstrong 先生在现场的原话来说,则是这样的:

今天我总共有两个话题要与大家分享,第一个是我的头发是怎么白的,还有我和我的博士生们交流研究过的诸多问题。另外一个就是我们在编程的时候经历过哪些失误与失败,以及这些方面实实在在的例子。

出生于1950年的 Armstrong 先生在他数十年的生命中所发生的种种事迹让我们津津乐道,而在他原本的人生设想里是1972年到75年攻读物理学博士,1985年成为教授,2000左右的时间获得诺贝尔奖。即使是总会有各种俗事纷扰,包括从“Smal stuff”到“Big stuff”在内的各式各样甚至于无关紧要的小事情,但这长期的计划却未变过。

然而,万万没想到,在1975年出现了“(Really)Run out of money”的窘境,而他也由此转向了计算机科学领域。从1986年希望有一个不错的容错处理系统创造了 Erlang,到爱立信暂时禁用 Erlang,继而 Erlang 开源,自己被 Fired、成为教授,认为“PPT 总是会摧毁人们的创造力”的 Armstrong 先生用手绘图里的哭和笑表情带过了个中曲折。

而在编程方面,Armstrong 先生分享到:

  1. 人们总认为产品开发流程是这样:Specify→Build→Test→Sell→$$$,然而实际上却是这样的:start→??????????→Product;
  2. 学习语言从一个问题开始,比如 Xcode:How can we confuse people? Erlang:How can we program telephony?
  3. 关于文档:Read the code;
  4. 关于性能:Wait 10 years for x1000 improvement,在未来二十年,所有与关键性能相关的软件将与硬件相融合。

阿里云 RDS 技术专家黄大鹏(武藏):Erlang 在云上数据链路的应用

阿里云 RDS 技术专家 黄大鹏(武藏)

PPT 下载:《Erlang 在云上数据链路的应用

当今云上数据链路面临着数据库服务极其严苛的可用性要求、云上业务多样性带来的困难、超高并发带来的问题、运维实体从几十到几十万带来的问题、资源倾斜、低成本与高效率的矛盾等挑战。作为高性能、高可用的平台,Erlang提供了相关的基础设施,负责任务调度、内存管理、应用隔离、网络框架、高可用框架、代码热替换,由此武藏与其团队开始了 Erlang 在云上数据链路的应用实践探索。比如在高可用方面,当硬件、操作系统故障,内部逻辑 Bug 造成假死,可在检查到异常后,采取将 SLB 路由摘掉、流量导走的措施。而在热升级方面,武藏建议:

  1. 尽量有soft_purge,purge不成功不要强行替换;
  2. 数据与应用逻辑的兼容,写好code_change;
  3. 避免模块间循环依赖;
  4. 动态启动的进程可能不会执行code_change。

环信首席架构师兼 IM 技术总监梁宇鹏:Erlang 在大规模分布式系统中的问题与应对

环信首席架构师兼 IM 技术总监 梁宇鹏

首先,在架构实践方面,以会话存储层设计为例,Mnesia 能处理么?在没有持久存储的情况下能,但是节点宕机时会遇到全局锁,从而导致所有节点都会阻塞引发整体集群无法访问,以自带的分区功能减少每个节点数量。随后,梁宇鹏对 Erlang 在大规模分布式系统中的运用进行了具体分享,包括分布式设计、全连接网络、进程调度等方面,他表示:调度的本质是计算资源的分配,公平才能保障系统的实时性,开发者需谨慎使用进程组,比如 Erlang的 Kafka client——Ekaf会把 pg2 把所有的调用方绑在一起,导致在网络闪断或 Kafka Server 端出问题时,全集群的锁定,对此,可将进程信息改为本地存储,该方案已开源。

Yunba 云巴 CEO 张虎:实时系统 Erlang 实践

Yunba 云巴 CEO 张虎

PPT 下载:实时系统 Erlang 实践

在面临支持亿级用户、线性扩容、高可用、软实时等方面的挑战时,有着异步 IO(Libev/epoll、Node.js)、轻量级进程(Erlang、Golang、Akka)等可选方案,而 Erlang 可公平调度、支持分布式、进程独立的 GC、OTP,基于此张虎具体分享了其团队在 Erlang 的实践,主要为:

  1. OTP Applications:每一个 模块封装一个 Application(Supervisor),业务逻辑由 Worker 实现,对外提供 RPC 接口;
  2. 接入负载均衡模块:实时监控,动态添加、移除接入点,每一个接入点用一个 Erlang 进程监控;
  3. 主逻辑模块:每个 Worker 每次处理一个业务请求;
  4. 大规模 publish:目标客户端数在200+,Worker 把 publish 分片,每个分片由一个 Erlang 进程处理;
  5. 离线消息性能问题:无线网络抖动频现,需保证离线消息送达率,一次 publish 有可能大量离线消息。

最后,张虎还就“为什么 Erlang‘难学’”这个问题分享了自己的经验,Erlang并不难学,首先,学习者对于函数式语言需要有几天的适应期,但还是有很多人都在工具链处放弃了。而云巴团队之所以会选择 Erlang 是因为其所带来的便利性,但工具链的确是阻碍 Erlang 普及的一大因素。

社区交流:关于 Erlang 你最关心的问题

最后,在火币网CTO程显峰的主持下,Erlang设计者Joe Armstrong、阿里云RDS技术专家黄大鹏(武藏)、环信首席架构师兼IM技术总监梁宇鹏、Yunba云巴CEO张虎一起围绕着 Erlang 与编程语言设计实践以及并行编程进行了深度的交流与探讨。

直至今日,Armstrong 先生依然会写代码,也在现场分享了他的一天,从起床、看新闻,弹1小时左右的钢琴这些技术之外的事情,到突然之间迸发的灵感并将之付诸实践。对于编程语言,Armstrong 先生认为“编程语言该生而简单,语言需要保持简约性,必须简单好用,才能方便开发者的学习”。


更多精彩内容,请关注图文直播专题:SDCC 2016中国软件开发者大会,微博:@CSDN研发频道,订阅CSDN官方微信公众号(ID:CSDNnews),即时获取大会动态。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/byeweiyang/article/details/80126899

智能推荐

WCE Windows hash抓取工具 教程_wce.exe -s aaa:win-9r7tfgsiqkf:0000000000000000000-程序员宅基地

文章浏览阅读6.9k次。WCE 下载地址:链接:https://share.weiyun.com/5MqXW47 密码:bdpqku工具界面_wce.exe -s aaa:win-9r7tfgsiqkf:00000000000000000000000000000000:a658974b892e

各种“网络地球仪”-程序员宅基地

文章浏览阅读4.5k次。Weather Globe(Mackiev)Google Earth(Google)Virtual Earth(Microsoft)World Wind(NASA)Skyline Globe(Skylinesoft)ArcGISExplorer(ESRI)国内LTEarth(灵图)、GeoGlobe(吉奥)、EV-Globe(国遥新天地) 软件名称: 3D Weather Globe(http:/_网络地球仪

程序员的办公桌上,都出现过哪些神奇的玩意儿 ~_程序员展示刀,产品经理展示枪-程序员宅基地

文章浏览阅读1.9w次,点赞113次,收藏57次。我要买这些东西,然后震惊整个办公室_程序员展示刀,产品经理展示枪

霍尔信号、编码器信号与电机转向-程序员宅基地

文章浏览阅读1.6w次,点赞7次,收藏63次。霍尔信号、编码器信号与电机转向从电机出轴方向看去,电机轴逆时针转动,霍尔信号的序列为编码器信号的序列为将霍尔信号按照H3 H2 H1的顺序组成三位二进制数,则霍尔信号翻译成状态为以120°放置霍尔为例如不给电机加电,使用示波器测量三个霍尔信号和电机三相反电动势,按照上面所说的方向用手转动电机得到下图① H1的上升沿对应电机q轴与H1位置电角度夹角为0°,..._霍尔信号

个人微信淘宝客返利机器人搭建教程_怎么自己制作返利机器人-程序员宅基地

文章浏览阅读7.1k次,点赞5次,收藏36次。个人微信淘宝客返利机器人搭建一篇教程全搞定天猫淘宝有优惠券和返利,仅天猫淘宝每年返利几十亿,你知道么?技巧分享:在天猫淘宝京东拼多多上挑选好产品后,按住标题文字后“复制链接”,把复制的淘口令或链接发给机器人,复制机器人返回优惠券口令或链接,再打开天猫或淘宝就能领取优惠券啦下面教你如何搭建一个类似阿可查券返利机器人搭建查券返利机器人前提条件1、注册微信公众号(订阅号、服务号皆可)2、开通阿里妈妈、京东联盟、拼多多联盟一、注册微信公众号https://mp.weixin.qq.com/cgi-b_怎么自己制作返利机器人

【团队技术知识分享 一】技术分享规范指南-程序员宅基地

文章浏览阅读2.1k次,点赞2次,收藏5次。技术分享时应秉持的基本原则:应有团队和个人、奉献者(统筹人)的概念,同时匹配团队激励、个人激励和最佳奉献者激励;团队应该打开工作内容边界,成员应该来自各内容方向;评分标准不应该过于模糊,否则没有意义,应由客观的基础分值以及分团队的主观综合结论得出。应有心愿单激励机制,促进大家共同聚焦到感兴趣的事情上;选题应有规范和框架,具体到某个小类,这样收获才有目标性,发布分享主题时大家才能快速判断是否是自己感兴趣的;流程和分享的模版应该有固定范式,避免随意的格式导致随意的内容,评分也应该部分参考于此;参会原则,应有_技术分享

随便推点

O2OA开源企业办公开发平台:使用Vue-CLI开发O2应用_vue2 oa-程序员宅基地

文章浏览阅读1k次。在模板中,我们使用了标签,将由o2-view组件负责渲染,给o2-view传入了两个参数:app="内容管理数据"和name="所有信息",我们将在o2-view组件中使用这两个参数,用于展现“内容管理数据”这个数据应用下的“所有信息”视图。在o2-view组件中,我们主要做的事是,在vue组件挂载后,将o2的视图组件,再挂载到o2-view组件的根Dom对象。当然,这里我们要在我们的O2服务器上创建好数据应用和视图,对应本例中,就是“内容管理数据”应用下的“所有信息”视图。..._vue2 oa

[Lua]table使用随笔-程序员宅基地

文章浏览阅读222次。table是lua中非常重要的一种类型,有必要对其多了解一些。

JAVA反射机制原理及应用和类加载详解-程序员宅基地

文章浏览阅读549次,点赞30次,收藏9次。我们前面学习都有一个概念,被private封装的资源只能类内部访问,外部是不行的,但这个规定被反射赤裸裸的打破了。反射就像一面镜子,它可以清楚看到类的完整结构信息,可以在运行时动态获取类的信息,创建对象以及调用对象的属性和方法。

Linux-LVM与磁盘配额-程序员宅基地

文章浏览阅读1.1k次,点赞35次,收藏12次。Logical Volume Manager,逻辑卷管理能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性/boot分区用于存放引导文件,不能基于LVM创建PV(物理卷):基于硬盘或分区设备创建而来,生成N多个PE,PE默认大小4M物理卷是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录 LVM 的属性,并把存储空间分割成默认大小为 4MB 的基本单元(PE),从而构成物理卷。

车充产品UL2089安规测试项目介绍-程序员宅基地

文章浏览阅读379次,点赞7次,收藏10次。4、Dielecteic voltage-withstand test 介电耐压试验。1、Maximum output voltage test 输出电压试验。6、Resistance to crushing test 抗压碎试验。8、Push-back relief test 阻力缓解试验。7、Strain relief test 应变消除试验。2、Power input test 功率输入试验。3、Temperature test 高低温试验。5、Abnormal test 故障试验。

IMX6ULL系统移植篇-系统烧写原理说明_正点原子 imx6ull nand 烧录-程序员宅基地

文章浏览阅读535次。镜像烧写说明_正点原子 imx6ull nand 烧录