Colas persistentes

This commit is contained in:
2026-05-12 13:37:48 +02:00
parent 23c61097a8
commit 985c85da59
3 changed files with 96 additions and 91 deletions

View File

@@ -6,6 +6,8 @@ networks:
external: true external: true
internal: internal:
driver: bridge driver: bridge
volumes:
rabbitmq_data:
services: services:
rabbitmq-sim-broker: rabbitmq-sim-broker:
@@ -28,6 +30,7 @@ services:
entrypoint: ["bash", "/usr/local/bin/docker-entrypoint-wrapper.sh"] entrypoint: ["bash", "/usr/local/bin/docker-entrypoint-wrapper.sh"]
command: ["rabbitmq-server"] command: ["rabbitmq-server"]
volumes: volumes:
- rabbitmq_data:/var/lib/rabbitmq
- ./rabbit/docker-entrypoint-wrapper.sh:/usr/local/bin/docker-entrypoint-wrapper.sh:ro - ./rabbit/docker-entrypoint-wrapper.sh:/usr/local/bin/docker-entrypoint-wrapper.sh:ro
- ./rabbitmq_plugins/enabled_plugins:/etc/rabbitmq/enabled_plugins:ro - ./rabbitmq_plugins/enabled_plugins:/etc/rabbitmq/enabled_plugins:ro
- ./rabbit/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf:ro - ./rabbit/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf:ro

View File

@@ -1,90 +1,92 @@
{ {
"rabbit_version": "4.2.2", "rabbit_version": "4.2.2",
"rabbitmq_version": "4.2.2", "rabbitmq_version": "4.2.2",
"product_name": "RabbitMQ", "product_name": "RabbitMQ",
"product_version": "4.2.2", "product_version": "4.2.2",
"users": [ "users": [
{ {
"name": "RABBITMQ_USER_PLACEHOLDER", "name": "RABBITMQ_USER_PLACEHOLDER",
"password": "RABBITMQ_PASSWORD_PLACEHOLDER", "password": "RABBITMQ_PASSWORD_PLACEHOLDER",
"tags": ["administrator"] "tags": [
} "administrator"
], ]
"vhosts": [ }
{ ],
"name": "sim-vhost" "vhosts": [
} {
], "name": "sim-vhost"
"permissions": [ }
{ ],
"user": "RABBITMQ_USER_PLACEHOLDER", "permissions": [
"vhost": "sim-vhost", {
"configure": ".*", "user": "RABBITMQ_USER_PLACEHOLDER",
"write": ".*", "vhost": "sim-vhost",
"read": ".*" "configure": ".*",
} "write": ".*",
], "read": ".*"
"topic_permissions": [], }
"parameters": [], ],
"global_parameters": [ "topic_permissions": [],
{ "parameters": [],
"name": "cluster_name", "global_parameters": [
"value": "rabbit@a8d5c6e08439" {
}, "name": "cluster_name",
{ "value": "rabbit@a8d5c6e08439"
"name": "internal_cluster_id", },
"value": "rabbitmq-cluster-id-gXeBLbsUC2W2tU0Bx_QY_w" {
} "name": "internal_cluster_id",
], "value": "rabbitmq-cluster-id-gXeBLbsUC2W2tU0Bx_QY_w"
"policies": [ }
{ ],
"vhost": "sim-vhost", "policies": [
"name": "pol.sim.dlx", {
"pattern": "sim.*", "vhost": "sim-vhost",
"apply-to": "queues", "name": "pol.sim.dlx",
"definition": { "pattern": "sim.*",
"dead-letter-exchange": "sim.dlx" "apply-to": "queues",
}, "definition": {
"priority": 7 "dead-letter-exchange": "sim.dlx"
} },
], "priority": 7
"exchanges": [ }
{ ],
"name": "sim.exchange", "exchanges": [
"vhost": "sim-vhost", {
"type": "topic", "name": "sim.exchange",
"durable": true, "vhost": "sim-vhost",
"auto_delete": false, "type": "topic",
"internal": false, "durable": true,
"argurments": {} "auto_delete": false,
}, "internal": false,
{ "argurments": {}
"name": "sim.dlx", },
"vhost": "sim-vhost", {
"type": "topic", "name": "sim.dlx",
"durable": true, "vhost": "sim-vhost",
"auto_delete": false, "type": "topic",
"internal": false, "durable": true,
"argurments": {} "auto_delete": false,
} "internal": false,
], "argurments": {}
"queues": [ }
{ ],
"name": "sim.logs", "queues": [
"vhost": "sim-vhost", {
"durable": true, "name": "sim.logs",
"auto_delete": false, "vhost": "sim-vhost",
"arguments": {} "durable": true,
} "auto_delete": false,
], "arguments": {}
"bindings": [ }
{ ],
"source": "sim.exchange", "bindings": [
"vhost": "sim-vhost", {
"destination": "sim.logs", "source": "sim.exchange",
"destination_type": "queue", "vhost": "sim-vhost",
"routing_key": "sim.#", "destination": "sim.logs",
"arguments": {} "destination_type": "queue",
} "routing_key": "sim.#",
] "arguments": {}
} }
]
}

View File

@@ -46,8 +46,8 @@ async function buildQueues(channel: Channel) {
await channel.assertExchange(EXCHANGES.DLX, "topic") await channel.assertExchange(EXCHANGES.DLX, "topic")
await channel.assertExchange(EXCHANGES.MAIN, "topic") await channel.assertExchange(EXCHANGES.MAIN, "topic")
await channel.assertQueue(QUEUES.OBJ) await channel.assertQueue(QUEUES.OBJ, { durable: true })
await channel.assertQueue(QUEUES.OBJDLX) await channel.assertQueue(QUEUES.OBJDLX, { durable: true })
await channel.assertQueue(QUEUES.OBJDEL, { await channel.assertQueue(QUEUES.OBJDEL, {
durable: true, durable: true,
arguments: { arguments: {