erlang rabbitmq源码解析_RabbitMQ

1.rabbit_alarm启动步骤(先执行rabbit_alarm:start()函数)

(1).启动一个rabbit_alarm_sup的supervisor2监督进程同时在该监督进程下启动一个rabbit_alarm的gen_event进程

rabbit_alarm进程作为整个RabbitMQ系统的报警进程,例如内存,磁盘大小的报警,报警后,如果有人向rabbit_alarm进程注册,

则会进程回调,同时会通知集群中的额其他节点

(2).启动一个vm_memory_monitor_sup的supervisor2监督进程同时在该进程下启动一个vm_memory_monitor进程

RabbitMQ系统虚拟机内存监督报警进程,如果虚拟机中的内存少于配置文件配置的大小,则会立刻通知rabbit_alarm进程

该进程就是RabbitMQ系统对内存使用情况监视的进程,如果当前内存使用量超过了配置文件中配置的大小,则会立刻向rabbit_alarm

进程发布内存使用量过大的报警信息,则集群中的所有节点的rabbit_alarm进程则会将内存报警信息回调注册到rabbit_alarm进程的函数

(3).启动一个rabbit_disk_monitor_sup的supervisor2监督进程同时在该监督进程下启动一个rabbit_disk_monitor进程

RabbitMQ系统磁盘使用报警进程,如果磁盘剩余大小少于配置文件中配置的大小,则会立刻通知rabbit_alarm进程

该进程就是RabbitMQ系统对磁盘使用情况监视的进程,如果磁盘剩余量少于配置文件中配置的大小,则会立刻向rabbit_alarm进程

发布报警信息,则集群中的所有节点的rabbit_alarm进程都会将报警信息回调注册到rabbit_alarm进程的函数

2.file_handle_cache启动步骤

(1).执行rabbit:start_fhc()函数启动file_handle_cache进程(该进程是RabbitMQ系统文件打开关闭操作关键进程)

该进程是RabbitMQ系统所有操作磁盘文件相关操作的进程

3.worker_pool启动步骤(RabbitMQ系统异步执行任务的小系统)

(1).首先启动一个worker_pool_sup的supervisor的监督进程

(2).worker_pool_sup监督进程下再启动一个worker_pool的进程池管理进程

(3).worker_pool_sup监督进程下再启动调度线程个数的worker_pool_worker的工作进程

该监督树下的进程是用来异步提交函数让工作进程执行完成,worker_pool_worker为工作进程,worker_pool为所有worker_pool_worker进程的管理者,哪个

worker_pool_worker进程空闲,哪个worker_pool_worker正在工作,worker_pool进程都有记录

4.database启动步骤(初始化RabbitMQ中的mnesia数据库,如果配置有集群数据库,自动连接到集群数据库)

(1).执行rabbit_mnesia:init()函数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值