![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
erlang
cpusoft
技术追求卓越,创新成就未来
展开
-
面对软件错误构建可靠的分布式系统_笔记02
3.3 Erlang顺序化编程3.3.1 数据结构:8种原始的数据类型+2扩展类型(1)整数integer:(2)浮点数float:(3)原子atom: 字母打头的小写字符串,类似枚举类型。如果单引号包括,则可以有空格:a atom(4)二进制数binary: 二进制存储空间, >(5)字符串:双引号包括的字符串 "cat",实质是ASCII码。比如"cat"实质为[97,99,116](6)原创 2009-02-01 22:01:00 · 401 阅读 · 0 评论 -
面对软件错误构建可靠的分布式系统_笔记09
5编写可容错系统5.1可容错编程5.2监督层级(1)监督树是监督者形成的层次化树,树中的每个 节点负责监视它的子节点中发生的错误(2)监督者是系统中监督其它进程的进程,监督其它子节点的监督者或者工作者。监督者能检测其异常,启动、停止、重启(3)工作者是执行任务的进程5.2.1图形表示法分为线性层次体系和AND/OR层次树(1)线性层次体系:SSRS是监督者,O代原创 2009-02-01 22:19:00 · 383 阅读 · 0 评论 -
面对软件错误构建可靠的分布式系统_笔记05
3.5错误处理3.5.1异常包括6类异常(1)值错误value error: 类似除0错误(2)类型错误type error:函数的参数错误(3)模式匹配错误pattern-matching error:在case/receive/if中无法匹配 (4)显示调用exit:相当于主动抛出异常, exit(Why)抛出Why异常(5)错误传播error propagation:进程收到一个exit原创 2009-02-01 22:13:00 · 331 阅读 · 0 评论 -
面对软件错误构建可靠的分布式系统_笔记14
7 OPT介绍开放电信平台:Open Telcom Platform:OPTto be continuing...原创 2009-02-01 22:33:00 · 479 阅读 · 0 评论 -
面对软件错误构建可靠的分布式系统_笔记12
6.4通用有限状态机Finite State Machine gen_fsm 某个状态发生了事件后,应当执行某个操作,状态更新StateName(Evnet, StateData) -> {next_state, StateNameNew, StateDataNew}.6.4.1通用有限状态机API有限的几个状态,不同事件发生后,进入不同的状态。类似通道门的开闭(1)gen_fsm:st原创 2009-02-01 22:30:00 · 366 阅读 · 0 评论 -
面对软件错误构建可靠的分布式系统_笔记08
4.2 Erlang世界观一切皆进程web服务器的架构server(Client) -> receive {Client, close} -> true; {Client, Request} -> Response = generate_response(Request),原创 2009-02-01 22:18:00 · 394 阅读 · 0 评论 -
面对软件错误构建可靠的分布式系统_笔记01
作为erlang的入门教材,《面对软件错误构建可靠的分布式系统》这篇博士论文很值得好好研究。学习笔记,就是有话则多,无话则少 2.6语言需求并行和可容错的编程语言要求(1)并发性: 轻量级的并行机制,在进程间发送消息。(2)错误封装:一个进程中的错误,不能破坏其它进程(3)故障检测:可以检测本地和远端进程中的异常(4)故障识别:可以识别报告异常原因(5)代码升级:可以动态替换运行的系统原创 2009-02-01 22:00:00 · 536 阅读 · 0 评论 -
面对软件错误构建可靠的分布式系统_笔记07
4 编程技术4.1抽象并出发eg:thesis_server1.erl-module(thesis_server1).-export([start/3, stop/1, rpc/2]).start(Name, F, State) -> register(Name, spawn(fun()->loop(Name, F, State) end)).loop(Name, F,原创 2009-02-01 22:16:00 · 381 阅读 · 0 评论 -
面对软件错误构建可靠的分布式系统_笔记06
3.5.6进程连接与监视者3.5.6.1进程连接:将一组进程组合在一起,其中任意一个进程错误死掉,其它进程都被连带停掉进程连接是对称的,A连接到B,则B自动也连接到Aeg: 在A进程中,执行 B = spawn_link(fun() -> ... end).则A和B连接了,当B发生异常死掉时,会发送退出信号{EXIT,B,Why}给A进程,当Why不为normal原创 2009-02-01 22:14:00 · 369 阅读 · 0 评论 -
面对软件错误构建可靠的分布式系统_笔记03
3.3.12高阶函数(1)将函数作为输入参数或返回值的函数,例如map map(Fun, [H|T]) -> [Fun(H) | map(Fun, T)]; map(Fun, []) -> [].eg: map(fun(I) -> 2 *I end, [1,2,3,4]). [2,4,6,8] eg: c语言中的for循环 sum = 0; for(int i原创 2009-02-01 22:09:00 · 429 阅读 · 0 评论 -
Erlang 的Socket编程
Erlang 的Socket编程介绍英文原文 http://jerith.za.net/writings/erlangsockettut.html我学习 Erlang 已经有一段时间了,想的是做一个网络游戏之类的东西。然而,我没有找到一个适合我水平的像样的 Erlang socket 编程教程。因此我决定自己写一个。我针对的是有一定编程经验的人,不过倒不需要对函数式转载 2009-02-02 22:22:00 · 1479 阅读 · 2 评论 -
面对软件错误构建可靠的分布式系统_笔记11
6.3通用事件管理器Event Manager(1)behaviour:gen_event(2)事件处理器:event manager可以完成:错误处理、告警关联、调试、设备管理一个事件管理器,可以安装0个或多个事件处理器event handler(3)通知Notification:向一个事件管理器发送一个事件动作(4)事件处理器event handler:一个可以处理事件的函数函数结构为原创 2009-02-01 22:28:00 · 398 阅读 · 0 评论 -
面对软件错误构建可靠的分布式系统_笔记10
6构建应用一个监督者+三个工作进程(gen_server, gen_event, gen_fsm) 6.1 behavior库前三个是工作者+监督者+打包安装gen_server:构建客户/服务器模型中的服务器gen_event:构建事件处理程序,gen_fsm:构建有限状态机supervisor:构建监督树application:整个应用程序打包的容器原创 2009-02-01 22:27:00 · 443 阅读 · 0 评论 -
面对软件错误构建可靠的分布式系统_笔记04
3.3.17 Erlang预处理程序epp 预编译文件:complie:file(M,[p]) ,保存M.erl到M.P3.3.18 宏-define(Constant, Replacement).-define(Func(Var1,Var2,...Var), Replacement).代码中用?Constant, ?Func代替,即可替换系统已经预定义宏:?F原创 2009-02-01 22:11:00 · 401 阅读 · 0 评论 -
面对软件错误构建可靠的分布式系统_笔记13
6.5通用监督者Supervisorgen_sup6.5.1通用监督者(1)supervisor:start_link(Name1, Mod, Arg) -> Result(2)Mod:init(Arg) -> SupStrategy SupStrategy监督树,参见后面例子 -module(thesis_simple_sup).-behaviour(sup原创 2009-02-01 22:32:00 · 473 阅读 · 0 评论