随笔分类 - erlang
摘要:1)垃圾回收GC 像 Java 一样,Go 的垃圾回收是全局的,这意味着一旦垃圾回收被触发,所有的 goroutine 都会被暂停,造成一段时间的业务延迟。 Erlang 的垃圾回收是进程级别的,每一个进程都有自己独立的垃圾回收器,一个进程的垃圾回收被触发,不会造成其他进程被挂起。相对来说带来的业务
阅读全文
摘要:在github上,关于erlang的一致性hash,有erlang-ryng和 hash_ring .在这里先聊下erlang-ryng这个. 在erlang-ryng的启动方式上,github上提供了原始的启动方式,即直接在erlang shell下输入 erl -pa ebin -run ryn
阅读全文
摘要:ejabberd 是对xmpp协议的完全实现,那么单纯的ejabberd是不提供该功能限制的,但是从我们的xmpp协议则可以完全的解决这个问题,我们通过jid对它进行限制,下面可以看一下jid的解释: 完整JID 完整的Jid包括 Username@Domain/resource Node/User
阅读全文
摘要:具有讽刺意味的是,负责错误日志的进程竟然是最为脆弱的之一。在Erlang的缺省安装中,error_logger39负责记录日志(写入磁盘或者发送到网络上),它的速度要比错误产生的速度慢得多。尤其是在记录用户产生的日志消息(不是错误)或者大量进程崩溃时,更是如此。对于前者,是因为error_logge
阅读全文
摘要:需求:要想在一个调度中,从mongo中查出大于一个时间戳的所有的数据总和。 这个需求很简单,一个是scheduler,还有另一个就是查出来大于某个时间戳的总和,比如大于每天0点时间点的和. 需要注意的是:mongo中的date类型以UTC(Coordinated Universal Time)存储,
阅读全文
摘要:在项目中,mongo中要创建日期类型,根据这个日期类型进而对mongo设置过期时间expire,加上对应的index索引自动删除。 而mongo中的日期类型,使用ISO格式,例如:ISODate("2012-11-02T07:58:51.718Z") 在java中,例如: db.tianyc04.i
阅读全文
摘要:转自霸爷的博客: 转载自系统技术非业余研究 本文链接地址: Erlang节点重启导致的incarnation问题 遇到个问题, =ERROR REPORT==== 10-Mar-2016::09:44:07 ===Discarding message {'$gen_cast',close_be_co
阅读全文
摘要:pooler和poolboy都是用erlang写的管理进程池的库。 pooler/poolboygithub : seth/pooler · GitHubgithub : devinus/poolboy · GitHub pooler相对于poolboy的优点 pooler比poolboy多了些概念
阅读全文
摘要:安装环境虚拟机:VMware® Workstation 10.0.1 buildLinux系统:CentOS6.5官方安装:http://www.rabbitmq.com/install-rpm.html1、安装 Erlang 1)Enable EPEL on your machine以root身份...
阅读全文
摘要:安装rabbitmq的文章和帖子多如牛毛,不管是官网还是各个博客,这里附个Rabbitmq官网安装Rpm包的链接, http://www.rabbitmq.com/install-rpm.html 不多说,直接上步骤. 首先下载rpm包, $ wget http://www.rabbitmq.com
阅读全文
摘要:如何在CentOS 6.4上安装erlang,具体的Erlang版本是R15B03-1。 在安装之前,需要先要安装一些其他的软件,否则在安装中间会出现一些由于没有其依赖的软件模块而失败。 一开始,要是安装依赖没有成功,可以重置下/etc/profile文件 , source/etc/profile
阅读全文
摘要:问题如题,这是在一个群里问的一个的问题。其实就是http的Server的上传下载的功能。 ibrowse:start().ibrowse:send_req("http://img1.gtimg.com/12/1293/129340/12934049_980x1200_0.jpg", [], get,
阅读全文
摘要:Erlang最开始是为了电信产品而发展起来的语言,因为这样的目的,决定了她对错误处理的严格要求。Erlang除了提供exception,try catch等语法,还支持Link和Monitor两种监控进程的机制,使得所有进程可以连接起来,组成一个整体。当某个进程出错退出时,其他进程都会收到该进程退出...
阅读全文
摘要:在之前的文章中,测试了脏读和事物读之间性能差别,下面测试下脏写和事物写之间的性能差别:代码如下:-module(mnesia_text).-compile(export_all).-record(r_test, {id, name}). start(N) -> timer:tc(mnesia_...
阅读全文
摘要:关于proplists:get_value/2 与lists:keyfind/2 的效率 早有比较,已出结论,lists:keyfind/2 的效率要好很多,好些人都是直接用或者做过它们之间的比较测试,测试下就一目了然了,直接上代码: 结果很清楚,分别执行10万次,time分别为60000和1000
阅读全文
摘要:在mnesia中,有脏读脏写等以及事物读写,它们的差异通过测试不难发现:代码如下:-module(mnesia_read_test).-compile(export_all).-record(r_test, {id, name}). start(N) -> timer:tc(mnesia_re...
阅读全文
摘要:Erlang本身对进程数,原子长度等没有限制,但为了提高性能和节省内存,总会在实际实现中和运行环境中作出一些限制。1、进程数量缺省情况下同时存在的最大Erlang进程数量不超过2^18=262144个,最大值为2^27-1=134217727,是由于内存的限制在32位环境中这个数量不太可能达到。有效...
阅读全文
摘要:一个参数的方法是已知Pid判断进程是否存活。两个参数的方法是已知节点和Pid或进程名判断进程是否存活。 is_process_alive(Pid) when is_pid(Pid) -> rpc:call(node(Pid), erlang, is_process_alive, [Pid]); is
阅读全文
摘要:http的反向推送通常使用"长轮询"或"长连接"的方式。 所谓"长轮询"是指客户端发送请求给服务器,服务器发现没有数据需要发送给客户端。http的反向推送通常使用"长轮询"或"长连接"的方式。所谓"长轮询"是指客户端发送请求给服务器,服务器发现没有数据需要发送给客户端于是hold住不及时返回,等有数...
阅读全文
摘要:操作系统是Ubuntu Server 12.10先安装Thriftsudo apt-get install libboost-dev libboost-test-dev \ libboost-program-options-dev libevent-dev automake \ libtool fl...
阅读全文

浙公网安备 33010602011771号