开发者社区 > 云原生 > 消息队列 > 正文

rocketmq官方对于kafka作为数据源这种情况,比较推荐的使用方式是什么?

为什么rocketmq-connect-kafka的pom文件配置了packaging为pom,这样会使得打包的结果并不是plugins需要的jar包。如果是pom,是不是在其他地方把rocketmq-connect-kafka作为了父依赖,需要配合其他connect进行使用。我找了网上的实践方案,kafka作为数据源的案例检索到的结果好像比较少,我想知道官方对于kafka作为数据源这种情况,比较推荐的使用方式。

展开
收起
嘟嘟嘟嘟嘟嘟 2023-11-20 22:45:15 47 0
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在 Maven 构建中,packaging 属性用于定义构建产物类型。当 packaging 设置为 pom 时,Maven 生成的最终结果将是一个 POM 文件,而不是 jar 文件。
    这是因为 rocketmq-connect-kafka 主要是作为一个插件使用,而非独立的应用。您可以将其作为 parent 项目添加到其他项目的 pom.xml 文件中,并从中继承配置和依赖关系,以便在自定义 Connector 中使用它。
    如果想要使用 Kafka 作为数据源,官方推荐的方法是在自定义 Connector 中包含相关的 Kafka 客户端库和配置。您可以使用以下步骤来完成:

    1. 引入 Kafka 客户端库:在 Maven 项目的 pom.xml 文件中添加 Kafka 客户端库的依赖项。
    2. 设置 Kafka 配置:在自定义 Connector 的源代码中设置 Kafka 连接配置,例如 brokers 地址、topics 等。
    3. 处理消息:编写代码以从 Kafka 中读取和发送消息,并调用 RocketMQ 的 API 来将消息传递给 RocketMQ。
    2023-11-21 17:08:30
    赞同 展开评论 打赏
  • 对于Kafka作为数据源的情况,RocketMQ官方并没有明确的推荐使用方式。然而,从一般的应用场景来看,Kafka和RocketMQ各有其优势和适用场景。Kafka适合日志处理,RocketMQ则更适合业务处理。在性能方面,Kafka的单机写入TPS号称在百万条/秒,而RocketMQ大约在10万条/秒。此外,RocketMQ支持异步实时刷盘,同步刷盘,同步Replication,异步Replication,而Kafka使用异步刷盘方式,异步Replication。这些因素都可能影响你选择何种消息中间件作为数据源。

    关于rocketmq-connect-kafka的pom文件配置为pom的问题,这可能是因为该项目是用于构建RocketMQ Connect Kafka的插件项目,而不是直接提供给用户使用的jar包。如果它是作为父依赖被其他项目引用,那么这些项目可能需要配合其他connect进行使用。

    2023-11-21 16:15:38
    赞同 展开评论 打赏
  • 这个 kafka-connect, pom 需要修改一下, 构建出 含有 『org.apache.rocketmq.connect.kafka.connector.KafkaSourceConnector』 的 jar包,这样 才能正常运行。
    或者看看是不是这个 kafkaSourceConnector 继承的 SourceConnector 的包的版本太低了,插件是根据 SourceConnector 来识别的,要是包不对,就加载不上,可能需要升级一下,可能需要重新实现 org.apache.rocketmq.connect.kafka.connector.KafkaSourceConnector 。
    此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”

    2023-11-20 22:49:43
    赞同 展开评论 打赏

多个子产品线联合打造金融级高可用消息服务以及对物联网的原生支持,覆盖多行业。

相关产品

  • 云消息队列 Kafka 版
  • 云消息队列 MQ
  • 相关电子书

    更多
    基于 RocketMQ+ Knative 驱动云原生 Ser 立即下载
    基于 RocketMQ + Knative 驱动云原生 Serverless 应用 立即下载
    RocketMQ Operator-K8s平台自动化部署工具 立即下载