update order consumer
This commit is contained in:
+26
-9
@@ -96,20 +96,37 @@ done
|
||||
echo ""
|
||||
echo "创建重试队列..."
|
||||
for dtype in "${DATA_TYPES[@]}"; do
|
||||
# 去掉末尾的 's' 得到单数形式(orders -> order)
|
||||
dtype_singular="${dtype%s}"
|
||||
|
||||
# 配置回流时的 routing key 为 {type}.retry,可以被 {type}.# 匹配
|
||||
rabbitmqadmin -H $RABBITMQ_HOST -P $RABBITMQ_PORT -u $RABBITMQ_USER -p $RABBITMQ_PASS \
|
||||
declare queue --name "${dtype}.retry.queue" --vhost "$VHOST" --durable true \
|
||||
--arguments "{\"x-message-ttl\":5000,\"x-dead-letter-exchange\":\"main.exchange\"}"
|
||||
echo "✓ 创建重试队列: ${dtype}.retry.queue"
|
||||
--arguments "{\"x-message-ttl\":5000,\"x-dead-letter-exchange\":\"main.exchange\",\"x-dead-letter-routing-key\":\"${dtype_singular}.retry\"}"
|
||||
echo "✓ 创建重试队列: ${dtype}.retry.queue (回流 routing key: ${dtype_singular}.retry)"
|
||||
done
|
||||
|
||||
# 6. 创建错误队列
|
||||
# 6. 创建错误 Exchange 和错误队列
|
||||
echo ""
|
||||
echo "创建错误队列..."
|
||||
echo "创建错误 Exchange 和错误队列..."
|
||||
# 创建通用错误 Exchange(供 Consumer 发送错误消息使用)
|
||||
rabbitmqadmin -H $RABBITMQ_HOST -P $RABBITMQ_PORT -u $RABBITMQ_USER -p $RABBITMQ_PASS \
|
||||
declare exchange --name "errors.exchange" --vhost "$VHOST" \
|
||||
--type topic --durable true
|
||||
echo "✓ 创建错误 Exchange: errors.exchange"
|
||||
|
||||
# 创建错误队列
|
||||
rabbitmqadmin -H $RABBITMQ_HOST -P $RABBITMQ_PORT -u $RABBITMQ_USER -p $RABBITMQ_PASS \
|
||||
declare queue --name "errors.queue" --vhost "$VHOST" --durable true \
|
||||
--arguments '{"x-message-ttl":604800000}'
|
||||
echo "✓ 创建错误队列: errors.queue"
|
||||
|
||||
# 绑定通用错误 Exchange 到错误队列
|
||||
rabbitmqadmin -H $RABBITMQ_HOST -P $RABBITMQ_PORT -u $RABBITMQ_USER -p $RABBITMQ_PASS \
|
||||
declare binding --source "errors.exchange" --destination "errors.queue" \
|
||||
--destination-type queue --vhost "$VHOST" --routing-key "#"
|
||||
echo "✓ 绑定: errors.exchange → errors.queue (routing_key: #)"
|
||||
|
||||
# 7. 绑定主 Exchange 到主队列(使用通配符)
|
||||
echo ""
|
||||
echo "绑定主 Exchange 到主队列..."
|
||||
@@ -203,15 +220,15 @@ rabbitmqadmin -H $RABBITMQ_HOST -P $RABBITMQ_PORT -u $RABBITMQ_USER -p $RABBITMQ
|
||||
echo "✓ 创建用户: user_dataflow_consumer"
|
||||
|
||||
# Consumer 需要完整的权限来声明和消费队列
|
||||
# - configure: 允许声明 main.exchange、DLX exchanges 和所有队列
|
||||
# - write: 允许向业务队列写入(ACK/NACK)、DLX 和 errors exchange
|
||||
# - configure: 允许声明 main.exchange、DLX exchanges、通用 errors.exchange 和所有队列
|
||||
# - write: 允许向业务队列写入(ACK/NACK)、DLX、通用 errors.exchange 和平台 errors exchanges
|
||||
# - 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 "^(main\\.exchange|dlx\\..*)|(.*\\.queue)$" \
|
||||
--write "^(orders|products|refunds|inventory).*\\.queue$|(dlx\\..*)|(.*\\.errors\\.exchange)$" \
|
||||
--configure "^(main\\.exchange|errors\\.exchange|dlx\\..*)|(.*\\.queue)$" \
|
||||
--write "^(orders|products|refunds|inventory).*\\.queue$|(dlx\\..*)|(errors\\.exchange)|(.*\\.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)"
|
||||
echo "✓ 配置用户权限 (configure: main.exchange+errors.exchange+DLX+queues, write: business queues+DLX+errors.exchange, read: main.exchange+business queues+DLX)"
|
||||
|
||||
# 11. 创建运维监控用户
|
||||
echo ""
|
||||
|
||||
Reference in New Issue
Block a user