Application
Supervisor
worker(gen_server, gen_event, gen_fsm)

陷阱:
http://erlang.org/doc/efficiency_guide/commoncaveats.html

迁移到Erlang学习步骤:
语法的学习,容易
阅读开源项目代码,进阶
掌握调试、性能调优工具,进阶
理解Erlang虚拟机工作原理(熟悉操作系统原理)

通用服务器(gen_server)
服务器框架 + 回调模块
回调模块(业务逻辑)是纯粹的顺序代码,没有并发、分裂、发送、接受、注册,意味着我们可以完全不了解底层并发模型的情况下编写客户端-服务器模型。
场景:
维持长连接
管理外部依赖部件(rabbitmq/redis/couchbase/muysql)
RESTful API
Socket.io API

通用事件处理(gen_event)
事件处理器框架 + 回调模块
分离事件生成 和 事件处理。
错误记录器和警报处理器同样遵循事件处理器的模式。
场景:
日志系统(file_handler, syslog_handler)
实时统计系统(一个事件多维度统计)

有限状态机(gen_fsm)
事件->行为->状态
场景:
处理不走复杂的请求(流程复杂,两次交互以后;事件复杂,需要后台异步操作)
海量事务(一次发布千万级个对象;分片,上万个fsm被创建)
fsm本身被监控

监控树(supervisor)
树的上级进程监控下级进程,如果下级进程挂了就会重启它们。

应用程序(application)
.app应用程序信息文件

应用程序监视器(GUI)
appmon:start()

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐