add mq test

This commit is contained in:
2025-11-17 16:51:51 +08:00
parent 6b8943f07f
commit b7a628e13c
9 changed files with 292 additions and 7 deletions
+14 -5
View File
@@ -30,6 +30,13 @@
### 关键设计决策
** 注意 **
1. 消息内部字段无严格要求,但可以在业务侧进行约束
2. 默认单条消息的最大 Payload 尺寸为 128MB
3. 消息队列为缓存系统,应该尽可能的将批量数据放入 payload\
4. MQ 存在的意义在于快速接受远程生产的 Message
#### 1. 为什么使用单队列?
| 问题 | 传统多队列方案 | 本方案(单队列) |
@@ -643,7 +650,7 @@ message_id 采用结构化格式,确保幂等性和可追溯性。
**格式**
```
{prefix}#{app_id}#{company_id}#{platform_id}#{store_id}#{entity_type}#{entity_id}
{company_id}#{platform_id}#{store_id}#{entity_type}#{request_time_range/formated_suffix}
```
**字段说明**
@@ -653,7 +660,7 @@ message_id 采用结构化格式,确保幂等性和可追溯性。
- `platform_id`:平台 ID
- `store_id`:店铺 ID
- `entity_type`:数据实体类型(order/product/refund/inventory
- `entity_id`:平台侧唯一标识(如订单号)
- `request_time_range/formated_suffix`:数据请求的时间区间/格式化的后缀,业务侧决定即可,需要业务侧维护幂等性
**分隔符说明**
- 使用 `#` 作为分隔符(RabbitMQ message_id 字段支持任意字符)
@@ -661,7 +668,7 @@ message_id 采用结构化格式,确保幂等性和可追溯性。
**示例**
```
wpic-project1#dataflow#100#20#200#order#DY123456789
wpic-project1#dataflow#100#20#200#order#2025-11-10~2025-11-15
解析:
- 项目前缀: wpic-project1
@@ -1062,7 +1069,8 @@ for platform in "${PLATFORMS[@]}"; do
# 配置平台用户权限
rabbitmqadmin -H $RABBITMQ_HOST -P $RABBITMQ_PORT -u $RABBITMQ_USER -p $RABBITMQ_PASS \
declare permissions --vhost "$VHOST" --user "user_${platform}" \
--configure "" --write "^${platform}\\.(exchange|errors\\.exchange)$" \
--configure "^${platform}\\.(exchange|errors\\.exchange)$" \
--write "^${platform}\\.(exchange|errors\\.exchange)$" \
--read "^${platform}\\.errors\\..*$"
echo "✓ 配置用户权限"
done
@@ -1310,7 +1318,8 @@ rabbitmqadmin -H $RABBITMQ_HOST -P $RABBITMQ_PORT -u $RABBITMQ_USER -p $RABBITMQ
# 配置权限
rabbitmqadmin -H $RABBITMQ_HOST -P $RABBITMQ_PORT -u $RABBITMQ_USER -p $RABBITMQ_PASS \
declare permissions --vhost dataflow-app --user "user_lazada" \
--configure "" --write "^lazada\\.(exchange|errors\\.exchange)$" \
--configure "^lazada\\.(exchange|errors\\.exchange)$" \
--write "^lazada\\.(exchange|errors\\.exchange)$" \
--read "^lazada\\.errors\\..*$"
```
+2
View File
@@ -10,5 +10,7 @@
8. 与 Tools 对比业务差异
9. 测试实时数据分析功能
10. 实时订单的数据展示可行性?
11. 移动订单生产者到统一的生产者目录,使用接口进行约束
12. 消息推错进行清理 接口
---