RabbitMQ以持久化方式存储时,磁盘中消息的数据结构是怎样的?
What kind of data structure message in disk when RabbitMQ store with persistent mode?
我正在使用 Rabbitmq docker 图像版本:rabbitmq:3-management
。
docker run -d --hostname my-rabbit --name ecomm-rabbit -p 15672:15672 -p 5672:5672 rabbitmq:3-management
我很好奇它在队列中存储 msg 的方式(如果持久数据在 disk 而不是 RAM ).
我读过 ,接受的答案是:
RabbitMQ uses a custom DB to store the messages, the DB is usually
located here:
/var/lib/rabbitmq/mnesia/rabbit@hostname/queues
但是,当我导航到该文件夹时,我没有看到它。
我的问题是: folder/file 它存储数据库文件的内容是什么?什么样的或结构是什么样的?
要回答第一个问题,请查看第 RABBITMQ_MNESIA_DIR
here 部分。以下是默认值,除非明确设置 RABBITMQ_MNESIA_DIR
。
- Generic UNIX package:
$RABBITMQ_HOME/var/lib/rabbitmq/mnesia
- Ubuntu and Debian packages:
/var/lib/rabbitmq/mnesia/
- RPM:
/var/lib/rabbitmq/plugins
- MacOS (Homebrew):
${install_prefix}/var/lib/rabbitmq/mnesia
, the Homebrew prefix is usually /usr/local
- Windows:
%APPDATA%\RabbitMQ
您将看到一些 .dcd
和 .dcl
文件。这意味着我们有一个 mnesia database。为了验证这一点,
> erl -mnesia dir '"/var/lib/rabbitmq/mnesia/rabbit@YOUR_CONTAINER_ID"'
1> mnesia:start().
ok
2> mnesia:system_info().
# here you will see tables like `rabbit_durable_exchange`
我正在使用 Rabbitmq docker 图像版本:rabbitmq:3-management
。
docker run -d --hostname my-rabbit --name ecomm-rabbit -p 15672:15672 -p 5672:5672 rabbitmq:3-management
我很好奇它在队列中存储 msg 的方式(如果持久数据在 disk 而不是 RAM ).
我读过
RabbitMQ uses a custom DB to store the messages, the DB is usually located here:
/var/lib/rabbitmq/mnesia/rabbit@hostname/queues
但是,当我导航到该文件夹时,我没有看到它。
我的问题是: folder/file 它存储数据库文件的内容是什么?什么样的或结构是什么样的?
要回答第一个问题,请查看第 RABBITMQ_MNESIA_DIR
here 部分。以下是默认值,除非明确设置 RABBITMQ_MNESIA_DIR
。
- Generic UNIX package:
$RABBITMQ_HOME/var/lib/rabbitmq/mnesia
- Ubuntu and Debian packages:
/var/lib/rabbitmq/mnesia/
- RPM:
/var/lib/rabbitmq/plugins
- MacOS (Homebrew):
${install_prefix}/var/lib/rabbitmq/mnesia
, the Homebrew prefix is usually/usr/local
- Windows:
%APPDATA%\RabbitMQ
您将看到一些 .dcd
和 .dcl
文件。这意味着我们有一个 mnesia database。为了验证这一点,
> erl -mnesia dir '"/var/lib/rabbitmq/mnesia/rabbit@YOUR_CONTAINER_ID"'
1> mnesia:start().
ok
2> mnesia:system_info().
# here you will see tables like `rabbit_durable_exchange`