KafkaStreams

1. 类

@Evolving
public class KafkaStreams
extends java.lang.Object

2. 简介

一个Kafka客户端,支持从1个或多个输入topics发送到0个、1个或多个输出topics,并提供持续不间断的计算服务。

其处理逻辑可用使用Topogy类提供的DAG拓扑处理器来定义,或者过StreamsBuilder提供的高层次DSL来定义传输。

一个KafkaStreams实例可以包含一个或多个线程,线程数可以通过对 processing work配置来指定。

一个KafkaStreams实例可以与具有相同 application ID的任何其它实例(可以在同一个进程中,可以是同一台机器的不同进程,也可以是在远端机器中) 做为一个整体的流式处理程序。这些实例将根据输入topic的分区来划分任务,这样就可以保证所有的分区都会被消费。实例增加或失败时,会触发再平衡(rebalance),保证负载平衡,以及保证所有的分区都可以被处理。

KafkaStreams内部包含一个普通的 KafkaProducer 和 KafkaConsumer来进行输入和输出。

3. 使用示例

 Map<String, Object> props = new HashMap<>();
 props.put(StreamsConfig.APPLICATION_ID_CONFIG, "my-stream-processing-application");
 props.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
 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 builder = new StreamsBuilder();
 builder.<String, String>stream("my-input-topic").mapValues(value -> value.length().toString()).to("my-output-topic");

 KafkaStreams streams = new KafkaStreams(builder.build(), config);
 streams.start();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值