update mq

This commit is contained in:
2025-12-01 11:13:42 +08:00
parent dcca6a109c
commit 68494c99e5
3 changed files with 193 additions and 51 deletions
+12 -12
View File
@@ -121,21 +121,17 @@ for dtype in "${DATA_TYPES[@]}"; do
echo "✓ 绑定: main.exchange → ${dtype}.queue (routing_key: ${dtype%s}.#)"
done
# 8. 绑定 DLX 到重试队列和错误队列
# 8. 绑定 DLX 到重试队列
echo ""
echo "绑定 DLX 到重试队列和错误队列..."
echo "绑定 DLX 到重试队列..."
for dtype in "${DATA_TYPES[@]}"; do
# DLX -> 重试队列
# 注意:方案B中,超过重试次数的消息由 Consumer 直接发送到 errors.queue
# 不使用 DLX 的 routing_key="error" 路由,因此不需要绑定到 errors.queue
rabbitmqadmin -H $RABBITMQ_HOST -P $RABBITMQ_PORT -u $RABBITMQ_USER -p $RABBITMQ_PASS \
declare binding --source "dlx.${dtype}" --destination "${dtype}.retry.queue" \
--destination-type queue --vhost "$VHOST" --routing-key "retry"
echo "✓ 绑定: dlx.${dtype}${dtype}.retry.queue (routing_key: retry)"
# DLX -> 错误队列
rabbitmqadmin -H $RABBITMQ_HOST -P $RABBITMQ_PORT -u $RABBITMQ_USER -p $RABBITMQ_PASS \
declare binding --source "dlx.${dtype}" --destination "errors.queue" \
--destination-type queue --vhost "$VHOST" --routing-key "error"
echo "✓ 绑定: dlx.${dtype} → errors.queue (routing_key: error)"
done
# 9. 为每个平台创建 Exchange 和 Binding
@@ -206,12 +202,16 @@ rabbitmqadmin -H $RABBITMQ_HOST -P $RABBITMQ_PORT -u $RABBITMQ_USER -p $RABBITMQ
declare user --name "user_dataflow_consumer" --password "change_me_consumer" --tags ""
echo "✓ 创建用户: user_dataflow_consumer"
# Consumer 需要完整的权限来声明和消费队列
# - configure: 允许声明 main.exchange、DLX exchanges 和所有队列
# - write: 允许向业务队列写入(ACK/NACK)、DLX 和 errors exchange
# - read: 允许读取 main.exchange、业务队列和 DLX exchanges
rabbitmqadmin -H $RABBITMQ_HOST -P $RABBITMQ_PORT -u $RABBITMQ_USER -p $RABBITMQ_PASS \
declare permissions --vhost "$VHOST" --user "user_dataflow_consumer" \
--configure "^(orders|products|refunds|inventory).*\\.queue$" \
--write "(dlx\\..*)|(.*\\.errors\\.exchange)$" \
--read "^(orders|products|refunds|inventory).*\\.queue$"
echo "✓ 配置用户权限"
--configure "^(main\\.exchange|dlx\\..*)|(.*\\.queue)$" \
--write "^(orders|products|refunds|inventory).*\\.queue$|(dlx\\..*)|(.*\\.errors\\.exchange)$" \
--read "^(main\\.exchange|(orders|products|refunds|inventory).*\\.queue|dlx\\..*)$"
echo "✓ 配置用户权限 (configure: main.exchange+DLX+queues, write: business queues+DLX+errors, read: main.exchange+business queues+DLX)"
# 11. 创建运维监控用户
echo ""