erlang浅谈(4)-OTP

1. OTP

OTP把分布式应用开发的一些常用场景,进程依赖管理,反应式,状态机,事件驱动模式框架化;另外,提供了一个分布式存储。

1.1. 框架

1. supervisor

监控树。

a) 配置要管理进程们启动参数

进程的所处模块,启动函数(也支持匿名函数),启动参数

b) 定制子进程的重启策略

  • l 当前进程挂掉了重启间隔时间
  • l 指定时间内重启最大频率
  • l 重启时是重启自己 || 所有的进程 || 配置时排在当前进程之后

2. gen_server

反应式框架。自身一个进程。

支持同步的call和异步的cast消息投递,也支持Pid!Message的原语方式(这点可以让其跟很多异步接口对接起来)

3. gen_fsm

有限状态机(本身没有状态,只能是有限)。自身一个进程。

State(S) x Event(E) -> Actions(A), State(S')

发送消息给该进程,它会回调{CurrentStateName}/2函数,CurrentStateName就是当前状态;如果是调用all_state相关的接口,会回调专门的handle_event等相关函数。

4. gen_event

消息中心。 

运行的过程:

a) 启动交换器进程,监听指定消息

b) 注册消息回调

c) 发送消息

d) 交换器进程回调注册的模块相应接口

1.2. mnesia

分布式的数据库管理

1. 支持多个列

2. 支持多个副本

副本的策略有:

  • ram (所有数据都在内存)
  • ram_disk(数据存在内存和磁盘)
  • disk(数据只放在磁盘)

3. 支持表分片

4. 使用时不用指定副本位置

自动选择合适的副本



限制

处理大文件有一定的性能问题



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值