erlang知识库 |
||
|
最近更新文章
Erlang新手进阶笔记(1) - 一个简单的服务器示例
~~~~~华丽的分割线~~~~ 最近老赵对C#和java进行比较的一篇博客引起了很多人的关注,但是我并不是很同意这个角度,我一直认为,一把钥匙一把锁,有明确针对性的语言是好语言,例如 erlang 之于分布式高可靠性系统,ruby 之于DSL类应用 学习Erlang的过程中,感觉它的语法其实很简单,比较强大的是它针对分布式系统所建构的基础设施,这个在语言层面和类层面都有考虑,这个系列blog就 ...
Erlang新手进阶笔记(2) - 有限状态机
上一篇写了一个服务器,包括基本的请求响应,服务关闭等功能,但是这并不是服务器的全部。 一般来说,服务器应当内部保存若干数据,这些数据参与对request的运算,然后生成response,有时候,这些计算还会改变服务器上的数据本身。我们可以把这些数据抽象为服务器的"状态",当服务器启动时,状态数据被初始化(初始化的工作应该根据环境有所区别)。 话说的真累,其实这就是大名鼎鼎的有 ...
Erlang新手进阶笔记(3) - 通用的server
分析一下之前的代码,可以注意到,server的功能其实是非常类似的,我们可以把公共的部分抽取出来,把不同的部分单独实现,做到一定程度上的复用,erlang支持动态的使用变量,例如: Mod = my_server. Mod:start(). 这样的代码会启动my_server,借助这个功能,我们可以把模块名作为参数传入,还可以使用模块名作为进程的注册名,于是,代码就便成了这样 % my_ser ...
Erlang新手进阶笔记(4) - behaviour机制
我们之前写的server已经比较通用了,但是erlang有更进一步的方案。 erlang不象java那样到处都是接口和实现类,它关注的是函数,也就是逻辑,当然,只要编程就要有规约,erlang的规约是通过"模板类"实现的,这个"模板类"的正式名称叫做behaviour。 一个典型的模板类大概就像这样—— % my_behaviour.erl % -modul ...
reltool用户指南
说明,最近比较忙,没有太多时间更新blog,请各位朋友谅解. 寻找俺的朋友,可以gtalk : litaocheng[at]gmail.com 或者 twitter : @litaocheng 这篇文章,应该是我写的最久的一篇,请各位多实践. reltool使用指南 Author: litaocheng Mail: litaocheng@gmail.com Re ...
CNode指南
CNode用户指南 Author: litaocheng Mail: litaocheng@gmail.com Date: 2009.7.8 目录 1 概述 2 CNode 相关API 2.1 建立连接 2.2 发送接收消息 2.3 Erlang client 3 编译运行 4 完整代码 1 概述 利用Erlang的 erl ...
Erlang类型及函数声明规格
Erlang类型及函数声明规格 Author: litaocheng Mail: litaocheng@gmail.com Date: 2009.6.8 Copyright: This document has been placed in the public domain. Contents 概述 意义 规范 类型及其定义语法 自定义类型定 ...
erlang otp 应用发布指南(一) tiny-1.0非真正OTP
Author: litaocheng@gmail.com Data: 2009-3-1 Version: 0.2 tiny OTP Application 为了简单,我们创建一个超级简单的application, 其只有一个module, 其不使用supervisor, 只创建一个简单的process, 我们为这个应用名叫:tinyapp (tinyapp-1.0). 其代 ...
erlang otp 应用发布指南(二) tiny-2.0 (supervisor)
Release Handling Erlang的Release Handling, 充分利用Erlang的code hot swap特性, 让你的应用可以比较顺畅的进行升级,回退. tiny-2.0 tiny-1.0已经成功的部署到了 /opt/local/tiny-1.0/ 目录. 最近,我们对tiny进行了改进, 准备要发布tiny-2.0. 我们在回想一下tiny-1.0, 在开始 ...
erlang otp 应用发布指南(三) tiny-3.0
tiny-3.0 最后,让我们弥补前面tiny-2.0的缺憾, 我们要开发tiny-3.0. tiny-3.0中我们不会在重启application, 我们这次 让Application温和的不间断的完成升级. 这里我假设你已经看懂前面的部分,并且亲自动手做了很多尝试. 下面是快速,直白的代码罗列.. 代码修改 新建tiny-3.0目录,添加一个module: mydict.erl ...
使用etop查看系统中进程信息
Erlang提供了丰富的开发工具,你认为没有的时候,很可能是你不知道它存在. 在OS中,我们经常查看操作系统的进程信息,帮助我们进行诊断。 Erlang提供了一个小工具 etop (Erlang top), 用来查看Erlang运行环境中,内存,ets,binary,进程等相关信息。 这些被收集的信息大部分是通过erlang module的相关bif输出,etop只是做了一个好的展现。 ...
gen_server tasting 之超简单名称服务
年假不能白休,时间不能浪费,看了 erlang 程序设计的 gen_server 章节,为了更好的理解、掌握于是上手写一个名称(键值)服务器。这个 lzy_name_svc 服务器是基于 otp gen_server 写成的,在底层键值被保存在了 erlang 的进程字典里,并且用于存储字典的进程是可以替换的,可以通过 lzy_name_svc:start/1 启动服务时指定,缺省情况保存在“当前 ...
gen_server tasting 之超简单名称服务(续)
前几天写了篇《gen_server tasting 之超简单名称服务 》东西,亲身体验了 erlang otp 的强悍威力。不过正所谓“超简单”,那个版本还是很初级的,所以这两天边继续研究边动手,开发迭代版本的名称服务。 在这个版本中,需要提供如下功能: 使用 otp 的 supervisor 监控树,保证服务可靠性。 添加日志功能,通过定制 sasl alarm_handler 来记录 ...
gen_server tasting 之超简单名称服务(再续)
前几天写了篇《gen_server tasting 之超简单名称服务(续) 》东西,亲身体验了 erlang otp 的强悍威力。这周正好有时间对 vsns/erlang 做个性能测试,验证传说中的 erlang 强大威力,其中包括了容错测试用例,关注在大并发压力下(13000tps)时,服务 oops 后通过 supervisor restart 时对整体性能的影响。在最后还包括了一些对服务容错 ...
CouchDB了解(-) 特性及实现
概述 CouchDB,大家或多或少都听说过。它到底有什么特性,适合哪些应用场景,和我们常用的关系型数据库有什么区别? 这些问题,可能我们心里都不是非常清楚。在以前的Blog中(PS,不是在javaeye哦),我提及了几次CouchDB,但是仅仅 限于编译,安装这些浮在水面上的工作。今天抽出时间把最近关于CouchDB的一些了解整理一下。 CouchDB是什么 CouchDB一种半结构化面向 ...
群组知识库热门文章
- 44295 进入Erlang的世界
- 11562 gen_server入门
- 11530 如何写超强伸缩性的多游戏玩家服务器
- 8621 Erlang类型及函数声明规格
- 6362 使用etop查看系统中进程信息
最新评论
我是erlang 菜鸟,弱弱的问一下,erlang帮助文档,那有怎么用,连 Mod名、Func名,是什 ...
wrj913 评论了 Programming Erlang读书笔记8: Concurrency ...
wrj913 评论了 Programming Erlang读书笔记8: Concurrency ...
不明白为什么第一个例子handler(Socket)中close(Socket)后还调用了handle ...
erlangguy 评论了 Erlang中的half-sync/half-async和Leader/F ...
erlangguy 评论了 Erlang中的half-sync/half-async和Leader/F ...
event manager本质上是维护一个{Module, State}对的list,每个Module ...
erlangguy 评论了 OTP Design Principles: Gen_Event Behavio ...
erlangguy 评论了 OTP Design Principles: Gen_Event Behavio ...