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()函数