gen_server tasting 之超简单名称服务
年假不能白休,时间不能浪费,看了erlang程序设计的gen_server章节,为了更好的理解、掌握于是上手写一个名称(键值)服务器。这个lzy_name_svc服务器是基于otpgen_server写成的,在底层键值被保存在了erlang的进程字典里,并且用于存储字典的进程是可以... « 阅读全文
erlang gen_server 如何解决负荷太大的问题呢?
经过一段时间学习后,我感觉erlang里常用gen_server这个behaviour来解决一些C/S方式的服务调用的问题,所有的这些请求最终都是经由同一个进程进行处理,倘若请求实在是太多太快,如何才能增加这个server的请求吞吐量呢?是否可以在server里维护一个子进程列表,把这些请求分别路由... « 阅读全文
创建gen_server组解决单process瓶颈
并发和顺序是一个令人纠结的问题。下面是开发中遇到的一个问题常规时间,系统表现的很“端庄”,不折腾CPU,不玩弄Mem。可是到高峰时,这个家伙就开始变态了。内存狂飙,直至swap最后无法响应。这个状况,当时折腾了一天多。始终无法找到问题所在。最后通过排查及yufeng的帮助,将问题锁定在某些局部pro... « 阅读全文
gen_server源码杂记
调用gen_server启动的方法gen_server :start_link ( { local, ?MODULE } , ?MODULE , [ ] , [ ] ) .参数分别是Name,Mod,Arg,OptionsOptions里可以设置timeoutgen.erl里的简单小函数取得timeouttimeout(Options) ->case opt(timeout, Options) of{ok, Time} ->Time;_ ->i... « 阅读全文
修改gen_fsm源码构建更强壮的有限状态机
关于erlang提供的gen_fsm有限状态机模型,可以说是很好很强大,正是有了它,才使erlang编写复杂业务逻辑成为一件轻松愉快的事情但是由于erlang的速错设计原则,我们的状态机进程可能在某些异常下直接退出,这点可能跟我们的需要有点背离最常见的情况是,状态转移中的错误处理问题,如下代码:%%... « 阅读全文
- 1

