Skip to content
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
品牌标识

AIRIOT智慧系统搭建平台经验交流

  1. 主页
  2. 平台安装
  3. v4.0 天翼 driver-ctwing-mq

v4.0 天翼 driver-ctwing-mq

已定时 已固定 已锁定 已移动 平台安装
帖子 发布者 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • D 离线
    D 离线
    dcm
    编写 最后由 编辑
    #1

    使用脚本,更新脚本后重启驱动发现脚本未生效(使用logger打印日志,通过更改日志的内容判断)总是执行的最开始那次的脚本。服务日志显示重启成功且看到脚本内容已经是更新后的。

    1 条回复 最后回复
    0
  • Zhang书书Z 在线
    Zhang书书Z 在线
    Zhang书书
    编写 最后由 Zhang书书 编辑
    #2

    平台是3.0版本还是4.0版本

    D 1 条回复 最后回复
    0
  • D 离线
    D 离线
    dcm
    回复了Zhang书书 最后由 dcm 编辑
    #3

    @Zhang书书 平台是4.0的,

    • 列表我最后在运维中重启才更新了脚本;
      我现在不能确定mq脚本的执行方式,

    使用一个mq驱动服务,相同topic,两种设备中使用不同脚本解析,我发现消息不是两种设备都能消费(在服务里查看打印的日志发现两个脚本的内容都存在),会导致一个消息只能被一种设备的脚本中解析,导致同一个消息不能被两种脚本解析。

    使用两个mq驱动服务,相同topic,两种设备中使用不同脚本解析,我发现消息不是两种设备都能消费(在服务里查看打印的日志发现两个脚本的内容都存在),会导致一个消息只能被一种设备的脚本中解析,导致同一个消息不能被两种脚本解析。

    因为使用天翼的MQ推送两种设备的消息,想通过相同topic消息的内容区分两种设备消息实现更新两种设备(两张表)。目前不能实现这个需求,是我使用的方式不对吗?

    Zhang书书Z 1 条回复 最后回复
    0
  • Zhang书书Z 在线
    Zhang书书Z 在线
    Zhang书书
    回复了dcm 最后由 编辑
    #4

    @dcm 负责这个驱动的研发最近外出,还没有回复我,我这边再问一下,他那边回复我之后我这边给您答复

    D 1 条回复 最后回复
    0
  • D 离线
    D 离线
    dcm
    回复了Zhang书书 最后由 编辑
    #5

    @Zhang书书 咋样了呢?这个同一驱动的多种设备模型的执行挺重要的。

    1 条回复 最后回复
    0
  • Zhang书书Z 在线
    Zhang书书Z 在线
    Zhang书书
    编写 最后由 编辑
    #6

    这两张表的设备配置发一下,我们这边看一下

    D 1 条回复 最后回复
    0
  • D 离线
    D 离线
    dcm
    回复了Zhang书书 最后由 编辑
    #7

    @Zhang书书 两张表的配置几乎一摸一样,只有脚本里的logger输出加了区分标记。
    af93178e-a449-4575-93dd-d1a360e2391c-image.png
    ![6a172065-afde-41f6-8451-f01137373c3f-image.png]
    20b2c830-bb6c-4c06-a28c-7a695f027de6-image.png

    这种情况同样出现在两种设备同时使用同一个tcpserver驱动服务下。本质问题还是一样的。

    同一个驱动服务应用在不同的设备(表)时,同一个消息数据只能被一种设备(设备的脚本)使用(如果每次同一个消息数据被分发到同一个驱动服务下所有设备(设备脚本)中是满足的我的使用的,但是现在不是),最重要的这个数据的使用是混乱的,即有时候这个设备消费有时候另一个设备消费。

    1 条回复 最后回复
    0
  • Zhang书书Z 在线
    Zhang书书Z 在线
    Zhang书书
    编写 最后由 Zhang书书 编辑
    #8

    我明白您的意思了,您这个地址是哪里来的,地址是正确的吗,还有其他的几个配置项是正确的吗
    image.png

    Zhang书书Z 1 条回复 最后回复
    0
  • Zhang书书Z 在线
    Zhang书书Z 在线
    Zhang书书
    编写 最后由 编辑
    #9

    Pulsar 消费模式

    Apache Pulsar 提供了多种灵活的消费模式,以满足不同场景下的消息处理需求。以下是 Pulsar 的主要消费模式:

    1. 独占模式 (Exclusive)

    • 特点:一个订阅只允许一个消费者消费消息
    • 行为:如果多个消费者尝试使用相同的订阅连接到主题,只有第一个消费者能成功连接,其他消费者会收到错误
    • 适用场景:需要严格顺序处理的场景

    2. 故障转移模式 (Failover)

    • 特点:多个消费者可以附加到同一订阅,但只有一个主消费者能接收消息
    • 行为:当主消费者断开连接时,消息会传递给下一个消费者(按优先级顺序)
    • 适用场景:需要消费者高可用的场景

    3. 共享模式 (Shared / Round Robin)

    • 特点:多个消费者可以共享同一订阅,消息以轮询方式分发给消费者
    • 行为:消息被均匀分配给所有可用的消费者
    • 注意:不保证消息顺序
    • 适用场景:需要水平扩展消费能力的场景

    4. Key_Shared 模式 (Key-Shared)

    • 特点:多个消费者共享订阅,但相同键的消息总是路由到同一个消费者
    • 行为:保证相同键的消息顺序,同时允许水平扩展
    • 适用场景:需要按键保证顺序且需要扩展消费能力的场景

    消费确认机制

    Pulsar 支持两种确认模式:

    1. 单条确认 (Individual Ack):显式确认单条消息
    2. 累积确认 (Cumulative Ack):确认某条消息及其之前的所有消息

    其他消费特性

    • 重试队列:处理失败的消息可以发送到重试队列
    • 死信队列:超过最大重试次数的消息会被发送到死信队列
    • 消息重放:消费者可以重置游标以重新消费消息
    • 批处理消费:支持批量消息的发送和消费

    选择哪种消费模式取决于您的具体需求,包括消息顺序要求、消费能力扩展需求以及容错需求等。

    1 条回复 最后回复
    0
  • Zhang书书Z 在线
    Zhang书书Z 在线
    Zhang书书
    回复了Zhang书书 最后由 Zhang书书 编辑
    #10

    @Zhang书书 这个我跟我们这边的研发同事讨论过了,天翼云的这个消息队列用的是pulsar, 有4种消息消费模式, 每一种好像都不能满足您的需求。同一个订阅 天翼只有一个能收到,标准mqtt应该可以支持您的这种需求,要不考虑试一下标准的mqtt驱动

    1 条回复 最后回复
    0

  • 登录

  • 没有帐号? 注册

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组