开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

flink producer设置精确性一次性语义,总是报错找不到事务Id 如何解决呀?

flink producer设置精确性一次性语义,总是报错找不到事务Id 如何解决呀?image.png

展开
收起
真的很搞笑 2023-06-05 18:20:02 156 0
1 条回答
写回答
取消 提交回答
  • 好像设置精准一次后就会报错,为之前版本好像是2.几来着。没遇到过,看着是事务ID冲突了,你试试这几个方案看看
    String transactionalId = UUID.randomUUID().toString();

    FlinkKafkaProducer producer = new FlinkKafkaProducer<>(
    "my-topic",
    new SimpleStringSchema(),
    properties,
    FlinkKafkaProducer.Semantic.EXACTLY_ONCE,
    / 设置 transactionalId /
    transactionalId);
    使用 setTransactionalIdPrefix() 方法设置 transactionalId:
    Properties properties = new Properties();
    properties.setProperty("bootstrap.servers", "localhost:9092");
    properties.setProperty("transaction.timeout.ms", "60000");

    FlinkKafkaProducer producer = new FlinkKafkaProducer<>(
    "my-topic",
    new SimpleStringSchema(),
    properties,
    FlinkKafkaProducer.Semantic.EXACTLY_ONCE);

    // 设置 transactionalId 前缀
    producer.setTransactionalIdPrefix("my-transactional-id-");

    延长事务超时时间:使用 transaction.timeout.ms 配置属性在生产者中延长事务超时时间,以确保生产者不会过早地被视为已过期
    ,此回答整理自钉群“【③群】Apache Flink China社区”

    2023-07-19 15:50:22
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载