大佬们,请问一下,ones-client SDK 与rocketmq-client 有什么区别?[阿里云消息队列MQ]

问题1:大佬们,请问一下,ones-client SDK 与rocketmq-client 有什么区别? 我看官方demo都是用的ones-client,我们项目之前都是用的 rocketmq-client? 问题2: 我用的rocketmq-client,发送延时消息时候,时间不能任意时间,只能传 delayTimeLevel ,是我的sdk版本低了吗?我看官方demo用ones-client是可以指定时间戳的,我的是4.9.5

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
4 条回复 A 作者 M 管理员
  1. 【回答】

    • 问题1,ones-client是阿里开源的一款消息队列客户端库,而RocketMQ-Client是阿里开源的一款消息队列中间件,提供了一系列消息队列相关的API和工具。因此,在使用上,ones-client和RocketMQ-Client有一些相似,但也存在一些差异。

    使用RocketMQ-Client发送消息时,可以直接使用RocketMQ提供的API来发送消息,也可以使用RocketMQ-Client提供的工具来发送消息。

    而ones-client提供了更加灵活的API和工具,可以更加方便地发送消息和进行消息管理。

    • 问题2,可能是你没有正确地使用RocketMQ-Client提供的API来发送消息。

    可以使用MessageExt类中的setSendTime方法设置消息的发送时间,使用setDelayTime方法设置消息的延时时间。

    如果你的setSendTime和setDelayTime方法都没有起作用,可能是你没有正确地初始化消息或者消息发送失败。

  2. OnesClient SDK 是阿里巴巴内部使用的云原生消息队列服务 product 实现 RocketMQ 协议的客户端 SDK,而 RocketMQ-Client 是 Apache RocketMQ 官方提供的客户端 SDK。

    尽管两者都是基于 RocketMQ 协议实现的客户端 SDK,但是它们之间还是存在一些区别:

    1. 来源不同:OnesClient SDK 是阿里云在运营自身产品时开发的,主要用于支持阿里云 MQ 订阅和消费等基本操作,而 RocketMQ-Client 是 Apache RocketMQ 社区维护的官方客户端 SDK,支持更多的功能和应用场景。

    2. 功能不同:OnesClient SDK 支持的功能相对较少,只包括消息订阅和消费、消息发送、消息过滤等基本功能;而 RocketMQ-Client 不仅支持这些基本功能,还支持消息事务、延迟消息、顺序消息等高级特性,以及与 Spring 等框架的集成等。

    3. 发展方向不同:OnesClient SDK 的设计重点是支持阿里云 MQ 服务的各种特性,例如消息可靠性等级、可视化监控等,因此其发展方向更加倾向于云计算领域;而 RocketMQ-Client 主要面向企业级消息中间件领域,注重提供高性能、高可靠、易用性等特点。

  3. 回答1:ons的是阿里云原来的定制版sdk。现在新业务建议都使用开源的sdk,是可以兼容的。 ,此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”

    1. ones-client是RocketMQ的新一代Java客户端,是官方推荐的客户端。rocketmq-client是老版本的客户端,不再推荐使用。
    2. ones-client采用Netty重构,性能比rocketmq-client有较大提升。
    3. ones-client支持更丰富的消息类型,如批量消息、事务消息、定时消息等。rocketmq-client支持的消息类型较少。
    4. ones-client的API更简洁,学习曲线更低。
  4. RocketMQ-Client:RocketMQ-Client 是 Apache RocketMQ 官方提供的 Java 客户端 SDK。

    NES-Client SDK 是阿里云提供的一套全新的事件流式数据访问 SDK,用于访问和操作阿里云的事件流服务