随笔分类 -  Erlang

From Sharp to Erlang 
[Erlang 0093] RabbitMQ 3.0的一些变化
摘要:还记得之前是怎样创建镜像队列的么?x-ha-policy [Link]在新版本,使用这个参数不会报错但是已经镜像不会再生效.替换方案是使用policies.这样修改的动因是:无法在运行时状态判断哪些队列是镜像队列,新方案是把镜像队列也做到配置里面.同样支持运行时管理. 还记得如何创建RabbitMQ集群么?这些在RabbitMQ3.0版本都有变化. 阅读全文
posted @ 2012-12-04 14:44 坚强2002 阅读(3450) 评论(1) 推荐(1) 编辑
[Erlang 0092] Erlang 命令行监控工具
摘要:程序部署在了生产环境,要像魔术师手中的飞刀,出手但是没有脱手,我们需要一些工具来了解程序在运行时的状况.之前介绍过一个Erlang的Web监控工具,如果在字符终端界面呢?本文介绍几个 阅读全文
posted @ 2012-11-22 20:39 坚强2002 阅读(12440) 评论(1) 推荐(3) 编辑
[Erlang 0091] 另辟蹊径构建RabbitMQ集群
摘要:除了内置的RabbitMQ集群方案,还可以通过其它一些软件或者插件来构建RabbitMQ集群.这些方案可以解决一些让我们头痛不已的问题,当然它们也不是银弹,也有使用场景的限制.事实上,对于各种集群方案我们都不能假设太多,每当连入一个节点,我们都要把这个节点当成一个全新的节点来处理,首先要完成各种声明工作. 阅读全文
posted @ 2012-11-19 12:55 坚强2002 阅读(3986) 评论(1) 推荐(0) 编辑
[Erlang 0090] RabbitMQ 集群: Mirrored Queue
摘要:之前提到过在集群环境中,队列只有元数据会在集群的所有节点同步,但是队列中的数据只会存在于一个节点;这不免让人失望:数据没有冗余容易丢数据甚至在durable的情况下,如果所在的节点当掉就要等待节点恢复.那么是不是有消息冗余的解决方案呢?是的,RabbitMQ自2.6.0开始就开始支持镜像队列(Mirrored Queue).消息会在节点之间复制,和其它的主从设计一样,它也有master和slave的概念;一旦某个节点当掉,会在其余的节点中选举一个slave作为master.要注意Mirrored Queue 也不是银弹,后面会提到它的局限. 阅读全文
posted @ 2012-11-15 20:01 坚强2002 阅读(5499) 评论(1) 推荐(1) 编辑
[Erlang 0089] RabbitMQ Exchange
摘要:之前提到了RabbitMQ是怎样维护Queue的data和metadata的.我们知道Queue在RabbitMQ对应Erlang的进程,那么Exchane是不是也是独立的Erlang进程呢?它的信息是如何维护的呢? 阅读全文
posted @ 2012-11-15 09:05 坚强2002 阅读(3405) 评论(0) 推荐(1) 编辑
[Erlang 0088] RabbitMQ 集群 Disc Node 一点实现细节
摘要:刚开始使用rabbitmqctl 创建集群的时候会有一个问题,怎么控制节点是disk node还是ram node?翻看了rabbitmq2.8.7的代码看了一下才知道原委,记录一下 阅读全文
posted @ 2012-11-13 12:41 坚强2002 阅读(7034) 评论(0) 推荐(0) 编辑
[Erlang 0087] RabbitMQ 集群: RAM or Disk node
摘要:上一篇文章提到,节点按照metadata的存储方式在集群中可以是RAM node 或者 disc node.这两种node有什么差别?在实际操作的时候又如何选择呢?本文回答这一问题. 阅读全文
posted @ 2012-11-12 21:19 坚强2002 阅读(8311) 评论(2) 推荐(2) 编辑
[Erlang 0086] RabbitMQ 集群: 从零开始
摘要:RabbitMQ集群搭建是比较简单的,中间可能遇到的障碍往往是因为不熟悉Erlang造成的.本文从零开始搭建RabbitMQ集群,细数中间若干陷阱,我们开始(本文略长)...之前文章介绍了RabbitMQ的metadata, 元数据可以持久化在RAM或Disc.从这个角度可以把RabbitMQ集群中的节点分成两种:RAM Node 和 Disk Node. RAM Node只会将元数据存放在RAM,Disc node 会将元数据持久化到磁盘.单节点系统就没有什么选择了,只允许disk node,否则由于没有数据冗余一旦重启就会丢掉所有的配置信息.但在节点环境中可以选择哪些节点是RAM node. 阅读全文
posted @ 2012-11-12 17:29 坚强2002 阅读(11260) 评论(2) 推荐(0) 编辑
[Erlang 0085] RabbitMQ 集群: data and metadata
摘要: 我们希望 RabbitMQ的集群能够解决单点故障,一旦节点异常自动重连到正常的节点;希望RabbitMQ 集群可以完成负载均衡,可以保证消息不丢失,希望可以快速增加节点到集群,单个节点当掉不会给集群带来灾难影响..... 哦,停下来,我们似乎把构建健壮地可扩展系统的所有梦想都寄托在RabbitMQ之上了.事实又是怎样呢?我们不能臆测软件对一个功能的实现,最好的办法就是用一下;我们近距离看一下. 阅读全文
posted @ 2012-11-11 22:29 坚强2002 阅读(3224) 评论(1) 推荐(0) 编辑
[Erlang 0084] RabbitMQ: fire-and-forget and RPC
摘要:在项目中引入RabbitMQ通常会考虑它会带来的好处:解耦应用程序,实现不同编程语言之间的互通,解除对特定通信协议的依赖,解除应用程序在时序上执行的依赖(异步).落实到代码层面就是两种常用应用模式:"发后即忘"(fire-and-forget)和RPC. 阅读全文
posted @ 2012-11-10 19:47 坚强2002 阅读(3733) 评论(0) 推荐(1) 编辑
[Erlang 0083] All about Erlang Shell
摘要:Erlang Shell是一个强大的工具,几乎只要我的电脑开着,就会有一个Erlang Shell开着,随时验证想法.就是因为是常用武器,也会有一些常见问题,今天做下回顾,顺便解决两个新问题.算是Erlang shell常见问题的不完全合集了吧. 阅读全文
posted @ 2012-11-01 21:34 坚强2002 阅读(3721) 评论(6) 推荐(1) 编辑
[Erlang 0082] Erlang Web Servers & Frameworks
摘要:Erlang也可以开发Web应用程序?? 是的! 除了Asp.net MVC,RoR,Django,Tornado之外,其实还有很多选择,看看Erlang世界中有哪些解决方案吧 阅读全文
posted @ 2012-10-27 22:52 坚强2002 阅读(5852) 评论(12) 推荐(1) 编辑
[Erlang 0081] RabbitMQ Topic Exchanges Routing Rules
摘要:RabbitMQ Topic Exchange 按照规则进行消息路由,注意这里使用的Topic表达方式并不是正则表达式.在入门教程[点击链接]里面,简单描述了一下如何编写规则: * (star) can substitute for exactly one word. # (hash) can substitute for zero or more words. 阅读全文
posted @ 2012-10-24 21:11 坚强2002 阅读(1682) 评论(1) 推荐(0) 编辑
[Erlang 0080] RabbitMQ :VHost,Exchanges, Queues,Bindings and Channels
摘要:和RabbitMQ这个项目的缘分好奇怪,很长一段时间内是只关注源代码,真的是Erlang开源项目中的典范;现在要在项目中应用RabbitMQ,从新的视角切入,全新的感觉.仿佛旧情人换了新衣,虽是熟稔却有不曾领略的风情. RabbitMQ提供了一整套机制来处理消息的发送,接收,容错,管理,上一篇文章中我提到了一篇Rabbits and warrens的文章,是一篇非常棒的入门文章,但是里面忽略了不少细节,我沿着RabbitMQ in Action重新梳理了一遍,笔记于此,备忘.(本文略长,慎入) 阅读全文
posted @ 2012-10-20 23:44 坚强2002 阅读(7904) 评论(1) 推荐(2) 编辑
[Erlang 0079] RabbitMQ 初探
摘要:最近在项目中实践RabbitMQ,比较幸运现在除了官方网站,还有一本非常棒的书可以读:RabbitMQ in Action;这本书目前还没有中文版或者影印版,但是从网上很容易找到PDF版本和epub mobi的版本.RabbitMQ上有关于这本书的介绍文章.从本文开始我会陆续把学习实践过程中的收获记录分享出来. 阅读全文
posted @ 2012-10-17 22:22 坚强2002 阅读(7038) 评论(6) 推荐(1) 编辑
[Erlang 0078] Erlang HiPE 二三事
摘要:HiPE(High Performance Erlang) 霸爷有一个一语中的的描述"erlang的hipe相当于jit, 根据语言评测有hipe支持在纯erlang的运算上会快2-3倍,这个性能的提升对于计算密集型的应用还是比较可观的。" 阅读全文
posted @ 2012-10-09 21:44 坚强2002 阅读(7388) 评论(4) 推荐(3) 编辑
[Erlang 0077] Erlang 杂记 V
摘要:最近一直在读书,学习几个Erlang开源项目的源码,深入其中乐趣无穷,只是偶尔会更新以前文章的内容,9月马上过去,按照惯例先把Evernote里面一些比较零散的东西整理出来. 阅读全文
posted @ 2012-09-25 20:05 坚强2002 阅读(2357) 评论(4) 推荐(2) 编辑
[Erlang 0076] Erlang Shell一个怪问题
摘要:最近一直在忙,偶尔有点时间在读书,补充一下能量;最近在学习 程序设计语言-实践之路 非常感慨,之前误打误撞的一点所得原来有一个更系统,完整的知识体系;于是沉下心来,慢慢吸收.像北上广这样的城市快速的代谢着我们的精力和知识,不容懈怠,不过倒也不必急躁,如果心浮气躁,效果必然大打折扣;抽时间整理一下最近的笔记,先从一个怪异的问题开始吧! 阅读全文
posted @ 2012-09-25 15:47 坚强2002 阅读(1563) 评论(2) 推荐(0) 编辑
[Erlang 0075] Bad value on output port 'tcp_inet'
摘要:小超同学遇到一个问题:gen_tcp:send方法报错,Bad value on output port 'tcp_inet';按照字面意思是发往port的数据值是bad value;打开erl5.9\lib\kernel-2.15\src\gen_tcp.erl看一下gen_tcp的源码,从函数接口说明可以看出数据要求是iodata,估计出现'bad value'很有可能数据不是iodata,做个实验看看 阅读全文
posted @ 2012-08-23 17:23 坚强2002 阅读(3866) 评论(0) 推荐(0) 编辑
[Erlang 0074] Erlang 杂记 IV
摘要:休假回来,调整一下状态,先把Evernote里面一些比较零散的东西整理出来;过去一个月对于Erlang开发者还是有些惊喜的,比如《Erlang/OTP并发编程实战》终于出版了;比如Building Web Applications with Erlang也可以看到英文版了.下面第一条消息就是关于Erlang的另外一本好书:《Learn You Some Erlang》 阅读全文
posted @ 2012-08-22 22:57 坚强2002 阅读(6445) 评论(10) 推荐(0) 编辑

  我,技术人,身体变胖,头脑依然灵活,喜欢Erlang .net,非著名技术博客,翻译过大师经典文章,也原创了不少.在技术之路上沉思,不断重构着不太优秀的自己.爱生活,爱Erlang!