springbootのカフカプロデューサー

ポンポンファイル:

<?XMLバージョン= "1.0"エンコード= "UTF-8" ?> 
< プロジェクトのxmlns = "http://maven.apache.org/POM/4.0.0" のxmlns:XSI = "http://www.w3.org / 2001 / XMLスキーマ・インスタンス」
         のxsi:のschemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" > 
    < modelVersion > 4.0.0 </ modelVersion > 
    < > 
        < groupIdを> org.springframework.boot </ groupIdを> 
        < たartifactId >
        < バージョン> 2.1.4.RELEASE </ バージョン> 
        < relativePath />  <! - ルックアップ親リポジトリから- > 
    </ > 
    < groupIdを> com.example </ groupIdを> 
    < たartifactId > kafka_demo </ たartifactId > 
    < バージョン> 0.0.1-SNAPSHOT </ バージョン> 
    < 名前> kafka_demo </ 名前> 
    <説明>春のブートのためのデモプロジェクト</ 記述> 


    < プロパティ> 
        < のjava.version > 1.8 </ のjava.version > 
    </ プロパティ> 


    < 依存性> 
        < 依存> 
            < groupIdを> org.springframework.boot </ groupIdを> 
            < たartifactId >春-bootスタータウェブ</ たartifactId > 
        </ 依存> 


        < 依存性> 
            <groupId >org.springframework.boot </ groupIdを> 
            < たartifactId >春・ブート・スターターテスト</ たartifactId > 
            < スコープ>テスト</ スコープ> 
        </ 依存関係> 


        <! - https://mvnrepository.com/artifact/org .apache.kafka /カフカ-クライアント- > 
        < 依存> 
            < groupIdを> org.apache.kafka </ groupIdを> 
            < たartifactId >カフカ-クライアント</ たartifactId > 
            <バージョン>2.2.0 </ バージョン> 
        </ 依存関係> 


    </ 依存関係> 


    < 構築> 
        < プラグイン> 
            < プラグイン> 
                < groupIdを> org.springframework.boot </ groupIdを> 
                < たartifactId >春・ブートのmaven-pluginの</ たartifactId > 
            </ プラグイン> 
        </ プラグイン> 
    </ 構築> 


</ プロジェクト>

 

最初:一般的なメーカー:

 

パッケージcom.example.kafka_demo。
輸入 org.apache.kafka.clients.producer *。;
輸入java.util.Properties; 

パブリック クラスデモ{
     公共 静的 ボイドメイン(文字列[]引数){ 
        プロパティの小道具 = 新しいプロパティ(); 
        props.put( "bootstrap.servers"、 "192.168.8.20:9092" ); 
        props.put( "のACK"、 "0" )。
        props.put( "再試行"、0 );
//         props.put( "batch.size"、16384);
        props.put( "key.serializer"、 "org.apache.kafka.common.serialization.StringSerializer" ); 
        props.put( "value.serializer"、 "org.apache.kafka.common.serialization.StringSerializer" ); 
        プロデューサープロデューサー = 新しいKafkaProducer(小道具)。
        // 正常发送消息的プロデューサ
 //         ProducerRecord <文字列、文字列>レコード=新しいProducerRecord <>( "第一"、 "333")。
        // 带キー的プロデューサー
 //         ProducerRecord <文字列、文字列>のレコード= <新しいProducerRecord>( "第1"、 "キー"、 "3312333")。
        ProducerRecord <>( "第一"、0、 "キー"、 "恋人" )。
        producer.send(レコード)。
        producer.close(); 
    } 
}

 

第二:プロデューサーのコールバック関数

パッケージcom.example.kafka_demo。


輸入 org.apache.kafka.clients.producer *。; 


輸入java.util.Properties; 




パブリック クラスデモ{ 






    公共 静的 ボイドメイン(文字列[]引数){ 
        プロパティの小道具 = 新しいプロパティ(); 
        props.put( "bootstrap.servers"、 "192.168.8.20:9092" ); 
        props.put( "のACK"、 "1" )。
        props.put( "再試行"、0 );
//         props.put( "batch.size"、16384); 
        props.put( "key.serializer"、「org.apache.kafka.common。); 
        props.put( "value.serializer"、 "org.apache.kafka.common.serialization.StringSerializer" ); 
        プロデューサープロデューサー = 新しいKafkaProducer(小道具)。
        ProducerRecord <文字列、文字列>レコード= 新しい ProducerRecord <>( "第一"、0、 "123"、 "haasdf" )。
        producer.send(レコード、(メタデータ、E) - > {
             場合(E =!ヌル){ 
                e.printStackTrace(); 
            } 
            System.out.printlnは( "成功:" + メタデータ); 
        }); 
        producer.close();

 

おすすめ

転載: www.cnblogs.com/spicy/p/10956222.html