Kafka的StreamAPI

该博客介绍如何利用Apache Kafka的StreamAPI将topic1中的数据转换为大写并写入topic2。首先创建topic1和topic2,然后通过生产者API向topic1写入数据。接着,编写StreamAPI,使用mapValues方法将接收到的每条数据转换为大写,并将结果发送到topic2。最后,启动消费者验证转换是否成功。
摘要由CSDN通过智能技术生成

需求

将topic1中的数据写入到topic2中,中间需要做到将小写转换为大写。
在这里插入图片描述

第一步:使用终端创建topic1和topic2;
第二步:调用生产者API或在终端往topic1中写入数据;
第四步:打开topic2的消费着终端,验证是否转换成功;
第三步:编写StreamAPI,并运行。

import org.apache.kafka.common.serialization.Serdes;
import org.apache.kafka.streams.KafkaStreams;
import org.apache.kafka.streams.StreamsBuilder;
import org.apache.kafka.streams.StreamsConfig;

import java.util.HashMap;
import java.util.Map;

public class StreamAPI {
    /**
     * 通过StreamAPI实现将数据从test里面读取出来,写入到test2里面去
     * @param args
     */
    public static void main(String[] args) {

        Map<String, Object> props = new HashMap<>();
        props.put(StreamsConfig.APPLICATION_ID_CONFIG, "my-stream-processing-application-bigger"); //应用id
        props.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, "ip:9092");
        //获取k、v的序列化和反序列化的方法
        props.put(StreamsConfig.DEFAULT_KEY_SERDE_CLASS_CONFIG, Serdes.String().getClass());
        props.put(StreamsConfig.DEFAULT_VALUE_SERDE_CLASS_CONFIG, Serdes.String().getClass());
        StreamsConfig config = new StreamsConfig(props);
        
        //获取核心类StreamsBuilder
        StreamsBuilder streamsBuilder = new StreamsBuilder();
        //通过streamsBuilder调用stream方法表示从哪个topic当中获取数据
        //调用mapvalues方法,表示将每一行value都取出来
        //value表示取出来的一行行的数据
        //将转成大写的数据,写入到test2这个topic里面去
        streamsBuilder.stream("test").mapValues(value -> value.toString().toUpperCase()).to("test2");
        //通过StreamsBuilder创建kafkaStreams,通过它来实现流式的编程启动
        KafkaStreams streams = new KafkaStreams(streamsBuilder.build(), config);
        //调用start
        streams.start();


    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值