注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

yu.chen的博客

坚持到底就是胜利

 
 
 

日志

 
 
关于我

喜欢数学, 喜欢编程,喜欢开发系统,喜欢逆向工程,喜欢欣赏开源前辈的代码

网易考拉推荐

rabbit_channel_sup.erl源文件学习  

2012-10-04 07:53:31|  分类: rabbitmq |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
写完了自己的server模块,要写supervisor模块。将rabbitmq的所有sup的文件都找出来,挑了几个看了一遍。
在rabbitmq中sup文件共有13个,用find -R . -name *sup.erl查找出来的
./src/delegate_sup.erl
./src/rabbit_amqqueue_sup.erl
./src/rabbit_channel_sup.erl
./src/rabbit_channel_sup_sup.erl
./src/rabbit_client_sup.erl
./src/rabbit_connection_sup.erl
./src/rabbit_mirror_queue_slave_sup.erl
./src/rabbit_restartable_sup.erl
./src/rabbit_sup.erl
./src/tcp_acceptor_sup.erl
./src/tcp_listener_sup.erl
./src/test_sup.erl
./src/worker_pool_sup.erl

rabbit_channel_sup.er文件稍有点特殊,在于它的start_link函数,比较长,内容比较丰富。
start_link与rabbitmq的使用帮助中的两种连接方式有直接的关系,一种连接方式是使用tcp进行连接,另一种是使用erlang直接相连。
前者就是对应于第一个start_link函数,后者对应于第二个start_link函数。
前者的pid的构成比较复杂,
1. 有一个supervisor的pid,利用这个pid创建了一个limiter,一个writer,然后在使用这三个pid构造出rabbit_channel的pid
后者相对简单一些
1. 比前者少了一个limit的pid。

这里用到了supervisor2,这个模块不是erlang提供的,是rabbitmq自带的一个模块。通过rabbit_channel_sup.erl对于supervisor2的使用多少可以看出一些相对于supervisor的差别。
1. supervisor2增加了intrinsic的启动方式,含义不清楚,只有看了supervisor2源码才会了解
2. supervisor2中增加了find_child函数,在supervisor中没有。
  评论这张
 
阅读(54)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017