Flink KafkaProducer

package com.claroja;

import org.apache.flink.api.common.serialization.SimpleStringSchema;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.streaming.connectors.kafka.FlinkKafkaProducer011;

import java.util.Properties;

public class FlinkKafkaProducer {
    public static void main(String[] args) throws Exception {
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        env.setParallelism(1);
        //创建消费者
        DataStreamSource<String> stream = env.fromElements("test");
        Properties PropertiesProducer = new Properties();
        PropertiesProducer.put("bootstrap.servers", "localhost:9092");
        stream.addSink(new FlinkKafkaProducer011<String>(
                "testTopic",
                new SimpleStringSchema(),
                PropertiesProducer
        ));

        stream.print();

        env.execute();
    }
}

Flink的两阶段提交是指在实现EXACTLY_ONCE语义时使用的一种协议。在Flink中,使用TwoPhaseCommitSinkFunction接口来实现两阶段提交。\[1\]具体实现中,FlinkKafkaProducer.commit()方法代理了KafkaProducer.commitTransaction()方法,用于向Kafka提交事务。\[2\]这样可以确保在发生故障或者异常情况下,能够保证数据的一致性和可靠性。 通过使用两阶段提交协议,Flink能够实现对外部Kafka Sink的EXACTLY_ONCE语义。这在Flink 1.4.0版本中引入了TwoPhaseCommitSinkFunction接口,并在Kafka Producer的connector中实现了它。\[3\]同时,Kafka的幂等性和事务也对实现EXACTLY_ONCE语义起到了重要的作用。 总结来说,Flink的两阶段提交是通过使用TwoPhaseCommitSinkFunction接口和Kafka Producer的commitTransaction()方法来实现的,以确保对外部Kafka Sink的EXACTLY_ONCE语义。 #### 引用[.reference_title] - *1* *3* [Flink两阶段提交](https://blog.csdn.net/lisenyeahyeah/article/details/90288231)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Flink二阶段提交](https://blog.csdn.net/liuwei0376/article/details/126259056)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值