erlang学习笔记之OTP

OTP简介

OTP是Open Telecom Platform(开放电信平台)。但是现在OTP比你想的作用更多。

它是一个应用程序操作系统,包含了一组库和实现方式,可以构建大规模、容错和分布式的应用程序。标准的Erlang分发套装包含OTP库。 OTP包含了许多强大的工具,例如一个完整的Web服务器,一个FTP服务器和一个CORBA ORB等,它们全都是用Erlang编写的。

OTP还包含了构建电信应用程序的最先进工具,能够实现 H248、SNMP和ASN.1/Erlang交叉编译器(这些是电信行业里常用的协议)。

核心概念是OTP行为。该行为封装了常见的行为模式,你可以把它看作是一个用回调函数作为参数的应用程序框架。 OTP的威力来自于行为本身就能提供容错性、可扩展性和动态代码升级等属性。 简单地说,行为负责解决问题的非函数部分,而回调函数负责解决函数部分。

这么做的好处在于问题的非函数部分(比如如何进行实时代码升级)对所有应用程序都是一样的,而函数部分 (由回调函数提供)在每个问题里都是不同的。

从一个简单的服务器入手,了解gen_server模块,然后一步步改进它,直到实现gen_server模块的完整功能。

Server 1:基本的服务器

%% API
-export([start/2, rpc/2]).

start(Name, Mod) ->
  register(Name, spawn(fun() -> loop(Name, Mod, Mod:init()) end)).
rpc(Name, Request) ->
  Name ! {self(), Request},
  receive
    {Name, Response} -> Response
  end.
loop(Name, Mod, State) ->
  receive
    {From, Request} ->
      {Response, State1} = Mod:handle(Request, State),
      From 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值