热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【SDCC2016】Erlang编程语言专题:Erlang在数据链路、分布式系统的落地实践

【SDCC2016】Erlang编程语言专题: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 程显峰主持。

【SDCC 2016】Erlang 编程语言专题:Erlang 在数据链路、分布式系统的落地实践
Erlang 语言设计者 Joe Armstrong

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

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

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

  • PPT 1: How I got my grey hairs
  • PPT 2:Growing A Language

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

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

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

而在编程方面,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,在未来二十年,所有与关键性能相关的软件将与硬件相融合。
【SDCC 2016】Erlang 编程语言专题:Erlang 在数据链路、分布式系统的落地实践

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

【SDCC 2016】Erlang 编程语言专题:Erlang 在数据链路、分布式系统的落地实践
阿里云 RDS 技术专家 黄大鹏(武藏)

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

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

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

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

【SDCC 2016】Erlang 编程语言专题:Erlang 在数据链路、分布式系统的落地实践
环信首席架构师兼 IM 技术总监 梁宇鹏

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

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

【SDCC 2016】Erlang 编程语言专题: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 与编程语言设计实践以及并行编程进行了深度的交流与探讨。

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

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

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


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 我们


推荐阅读
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • MySQL的查询执行流程涉及多个关键组件,包括连接器、查询缓存、分析器和优化器。在服务层,连接器负责建立与客户端的连接,查询缓存用于存储和检索常用查询结果,以提高性能。分析器则解析SQL语句,生成语法树,而优化器负责选择最优的查询执行计划。这一流程确保了MySQL能够高效地处理各种复杂的查询请求。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • 在当今的软件开发领域,分布式技术已成为程序员不可或缺的核心技能之一,尤其在面试中更是考察的重点。无论是小微企业还是大型企业,掌握分布式技术对于提升工作效率和解决实际问题都至关重要。本周的Java架构师实战训练营中,我们深入探讨了Kafka这一高效的分布式消息系统,它不仅支持发布订阅模式,还能在高并发场景下保持高性能和高可靠性。通过实际案例和代码演练,学员们对Kafka的应用有了更加深刻的理解。 ... [详细]
  • 第二章:Kafka基础入门与核心概念解析
    本章节主要介绍了Kafka的基本概念及其核心特性。Kafka是一种分布式消息发布和订阅系统,以其卓越的性能和高吞吐量而著称。最初,Kafka被设计用于LinkedIn的活动流和运营数据处理,旨在高效地管理和传输大规模的数据流。这些数据主要包括用户活动记录、系统日志和其他实时信息。通过深入解析Kafka的设计原理和应用场景,读者将能够更好地理解其在现代大数据架构中的重要地位。 ... [详细]
  • 修复一个 Bug 竟耗时两天?真的有那么复杂吗?
    修复一个 Bug 竟然耗费了两天时间?这背后究竟隐藏着怎样的复杂性?本文将深入探讨这个看似简单的 Bug 为何会如此棘手,从代码层面剖析问题根源,并分享解决过程中遇到的技术挑战和心得。 ... [详细]
  • 深入解析十大经典排序算法:动画演示、原理分析与代码实现
    本文深入探讨了十种经典的排序算法,不仅通过动画直观展示了每种算法的运行过程,还详细解析了其背后的原理与机制,并提供了相应的代码实现,帮助读者全面理解和掌握这些算法的核心要点。 ... [详细]
  • 开发心得:利用 Redis 构建分布式系统的轻量级协调机制
    开发心得:利用 Redis 构建分布式系统的轻量级协调机制 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • B站服务器故障影响豆瓣评分?别担心,阿里巴巴架构师分享预防策略与技术方案
    13日晚上,在视频观看高峰时段,B站出现了服务器故障,引发网友在各大平台上的广泛吐槽。这一事件导致了连锁反应,大量用户纷纷涌入A站、豆瓣和晋江等平台,给这些网站带来了突如其来的流量压力。为了防止类似问题的发生,阿里巴巴架构师分享了一系列预防策略和技术方案,包括负载均衡、弹性伸缩和容灾备份等措施,以确保系统的稳定性和可靠性。 ... [详细]
  • 2021年Java开发实战:当前时间戳转换方法详解与实用网址推荐
    在当前的就业市场中,金九银十过后,金三银四也即将到来。本文将分享一些实用的面试技巧和题目,特别是针对正在寻找新工作机会的Java开发者。作者在准备字节跳动的面试过程中积累了丰富的经验,并成功获得了Offer。文中详细介绍了如何将当前时间戳进行转换的方法,并推荐了一些实用的在线资源,帮助读者更好地应对技术面试。 ... [详细]
author-avatar
风云时尚_榜中榜_434
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有