OTP思想

OTP的中心思想就是将程序的通用部分与业务逻辑部分分开,Erlang帮你实现通用部分,你只管实现你的业务逻辑部分就好了。就像一些分布式存储系统,例如Amazon的Dynamo、Google的Bigtable、LiveJournal的memcache等,为了保证分布式系统的容错能力、数据一致性、请求高并发性等等,具体实现的业务逻辑可能不太一样,但是他们使用的算法都非常固定。当你实现另一套分布式系统时,很可能就是参考他们的算法。OTP就是帮你实现一些算法固定的部分通用逻辑。

在一个服务器框架中,我们需要解决的问题通常有:进程命名、超时配置、调试、非期望消息和错误的处理、代码热加载、公共代码、服务器开启和关闭的处理、服务器与监督者(supervisor)的配合等等。 这些内容由自己动手编写相关代码是一件有风险的事情,而OTP构成了erlang的行为机制(behaviours),专门用于处理这些繁杂而又易出错的部分,其中的监督者(supervisor)可以让程序员创建具有层次结构的进程,使某个进程死亡后可以通过其监督者对这个进程进行重启或者保存进程数据等操作,例如gen_server就是一套通用服务器的行为机制,可以用于向多个客户端提供服务

在创建gen_server行为的代码时,会要求提供一些进程的初始化、结束、消息的同步和异步处理函数等,相当于为模板填充程序所需的内容,可以极大程度的减少错误的产生和提高开发效率

gen_server链接挖坑

Erlang-OTP思想理解相关推荐

  1. erlang OTP 通用服务器行为模式理解

    OTP的行为模式对于初学者理解起来的确是有一定难度的,现根据个人理解总结如下: 1.基本工作方法 由用户定义相关功能函数,但这个功能函数并不是直接实现相关功能,而是直接调用gen_server模块中的 ...

  2. Erlang/OTP之gen_fsm行为模式

    2019独角兽企业重金招聘Python工程师标准>>> 1. Fsm 称为 有限状态机,举个例子,游戏中的怪物称为NPC,NPC一般有几种状态,比如:静止,移动,死亡,被攻击,攻击英 ...

  3. Erlang/OTP设计原则(文档翻译)

    http://erlang.org/doc/design_principles/des_princ.html 图和代码皆源自以上链接中Erlang官方文档,翻译时的版本为20.1. 这个设计原则,其实 ...

  4. Erlang/OTP并发编程实战

    <Erlang/OTP并发编程实战> 基本信息 原书名:Erlang and OTP in Action 作者: (美)洛根(Logan,M.) 梅里特(Merritt,E.) (瑞典) ...

  5. 【Erlang/OTP入门】基于进程的并发编程和分布式

    引言 在参加区统考的前一天开始写这篇文章,开学后时间真的紧迫了很多.   我最近玩Erlang只是一个偶然(?).这一切的开始是我某天看到一本名为<Erlang and OTP in Actio ...

  6. centos 6.8 源码安装 erlang/otp 19.0.2

    2019独角兽企业重金招聘Python工程师标准>>> 最近一直都是在debian jessie下开发erlang代码,但部署环境一直都是在centos 6上面,发现centos 6 ...

  7. matlab温度数据怎么滤波_卡尔曼滤波算法思想理解 Kalman filter 第一篇

    卡尔曼滤波算法思想理解 Kalman filter 第一篇 最近在初步的理解目标跟踪的领域, 其中一个非常经典的算法卡尔曼滤波Kalman filter是需要有很好的理解才行, 由于已经脱离了学校,懂 ...

  8. CentOS 6 5安装Erlang/OTP 17 0

    CentOS 6.5安装Erlang/OTP 17.0 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs Erlang目前已经是Fedora和Debian/ ...

  9. Erlang/OTP:基于Behaviour的回调函数

    原始链接:https://blog.zhustec.me/posts/erlang-otp-1-callback-based-on-behaviour OTP 是什么 OTP 的全称是开源电信平台 ( ...

最新文章

  1. 1600802002
  2. 洛谷P2672 推销员
  3. OpenNMS Log Correlator
  4. Group by优化
  5. 不可多得的Javascript(AJAX)开发工具 - Aptana
  6. html 通用ui css图标,ui-icon.html
  7. python怎么设置颜色深浅变化_机器学习中减弱不同图像数据色调及颜色深浅差异...
  8. Python基础篇1
  9. 劳力埃大学计算机科学,劳里埃大学计算机科学本科.pdf
  10. ARP攻击实战以及防御手段
  11. 从零点一开始机器学习之TF1.0版本HDF5转换为saved_model
  12. php+条形码在线怎么生成,php实现在线生成条形码示例分享(条形码生成器)
  13. STM32G473CBT6关于ADC采集的总结
  14. CSU - 1655 文本计算器
  15. 4.10 单元格内容的隐藏和保护 [原创Excel教程]
  16. 猫眼5万条评论告诉你《飞驰人生》值不值得看?!
  17. Conflux 树图区块链 “数字藏品 合约标准和编写规范
  18. win7系统怎么打开nvidia控制面板,有什么方法
  19. JavaScritp基本学习
  20. 获取安卓设备的有线网卡的MAC地址(安卓TV、安卓系统的广告机等)

热门文章

  1. python半径求面积_python由圆半径计算圆的周长和面积
  2. 软件分析_csdn app
  3. python3 提取网页数据
  4. 张涵诚:海关大数据平台与应用的场景思考
  5. 海关大数据平台建设与应用场景思考
  6. 诺基亚A7Android,诺基亚转战安卓 各操作系统代表机型推荐
  7. 物联网平台通信协议之 MQTT 协议
  8. 机器人的地图——占据栅格地图
  9. 深圳c语言程序设计,深圳零基础玩转C语言编程
  10. PCB 奥宝LDI 输出 轴交换与镜像关系