百度看得云里雾里的,能简单的解释下吗?
百度看得云里雾里的,能简单的解释下吗?
一个是Subscribe,一个是Assign。Assign可以指定revicer接受kafka的那些paritition。Subscribe会自动balance。两者都可以指定消费的offset和使用auto.offset.reset
@青牛 为啥我百度看到的是Receiver与Direct的方式?
@ling775000 哦,你是指这个啊,Receiver是老的方式,在新的spark中已经被Direct代替了
Receiver方式是通过zookeeper来连接kafka队列,Direct方式是直接连接到kafka的brokers
Receiver需要把数据写到hdfs上进行容错,Direct容错使用的是kafka的副本
Receiver无法保证数据被处理一次,direct会追踪最新的offset并保存到checkpoint中可以保证消费一次
direct相比Receiver性能更高且有事务性保证