v4.0 天翼 driver-ctwing-mq
平台安装
-
@Zhang书书 平台是4.0的,
- 列表我最后在运维中重启才更新了脚本;
我现在不能确定mq脚本的执行方式,
使用一个mq驱动服务,相同topic,两种设备中使用不同脚本解析,我发现消息不是两种设备都能消费(在服务里查看打印的日志发现两个脚本的内容都存在),会导致一个消息只能被一种设备的脚本中解析,导致同一个消息不能被两种脚本解析。
使用两个mq驱动服务,相同topic,两种设备中使用不同脚本解析,我发现消息不是两种设备都能消费(在服务里查看打印的日志发现两个脚本的内容都存在),会导致一个消息只能被一种设备的脚本中解析,导致同一个消息不能被两种脚本解析。
因为使用天翼的MQ推送两种设备的消息,想通过相同topic消息的内容区分两种设备消息实现更新两种设备(两张表)。目前不能实现这个需求,是我使用的方式不对吗?
- 列表我最后在运维中重启才更新了脚本;
-
@Zhang书书 两张表的配置几乎一摸一样,只有脚本里的logger输出加了区分标记。
![6a172065-afde-41f6-8451-f01137373c3f-image.png]
这种情况同样出现在两种设备同时使用同一个tcpserver驱动服务下。本质问题还是一样的。
同一个驱动服务应用在不同的设备(表)时,同一个消息数据只能被一种设备(设备的脚本)使用(如果每次同一个消息数据被分发到同一个驱动服务下所有设备(设备脚本)中是满足的我的使用的,但是现在不是),最重要的这个数据的使用是混乱的,即有时候这个设备消费有时候另一个设备消费。
-
Pulsar 消费模式
Apache Pulsar 提供了多种灵活的消费模式,以满足不同场景下的消息处理需求。以下是 Pulsar 的主要消费模式:
1. 独占模式 (Exclusive)
- 特点:一个订阅只允许一个消费者消费消息
- 行为:如果多个消费者尝试使用相同的订阅连接到主题,只有第一个消费者能成功连接,其他消费者会收到错误
- 适用场景:需要严格顺序处理的场景
2. 故障转移模式 (Failover)
- 特点:多个消费者可以附加到同一订阅,但只有一个主消费者能接收消息
- 行为:当主消费者断开连接时,消息会传递给下一个消费者(按优先级顺序)
- 适用场景:需要消费者高可用的场景
3. 共享模式 (Shared / Round Robin)
- 特点:多个消费者可以共享同一订阅,消息以轮询方式分发给消费者
- 行为:消息被均匀分配给所有可用的消费者
- 注意:不保证消息顺序
- 适用场景:需要水平扩展消费能力的场景
4. Key_Shared 模式 (Key-Shared)
- 特点:多个消费者共享订阅,但相同键的消息总是路由到同一个消费者
- 行为:保证相同键的消息顺序,同时允许水平扩展
- 适用场景:需要按键保证顺序且需要扩展消费能力的场景
消费确认机制
Pulsar 支持两种确认模式:
- 单条确认 (Individual Ack):显式确认单条消息
- 累积确认 (Cumulative Ack):确认某条消息及其之前的所有消息
其他消费特性
- 重试队列:处理失败的消息可以发送到重试队列
- 死信队列:超过最大重试次数的消息会被发送到死信队列
- 消息重放:消费者可以重置游标以重新消费消息
- 批处理消费:支持批量消息的发送和消费
选择哪种消费模式取决于您的具体需求,包括消息顺序要求、消费能力扩展需求以及容错需求等。