kafka应用之路

  1、在技术选型上,为什么要使用kafka,不使用rocketmq?

kafka是分布式日志存储系统.

1)kafka更容易大数据系统结合,例如我们用到的storm。

2)kafka比较热门,文档比较全

3)能够做到真正的保证数据不会丢失,不会重复,即使在节点down掉的情况下。

2、介绍kafka

3、kafka安装

4、kafka使用(kafka的实践)


二、需要注意的问题:

1、kafka的consumer数量不能超过partition的数量;另外如果有同一个groupid的consumer去消费消息,这个groupid的消息就会被消费掉从而读不到消息。

2、kafka可以持久化一段时间的数据,通过下面的参数设置。可以设置基于时间的,也可以设置基于文件大小的


3、Kafka读取特定消息的时间复杂度为O(1),即与文件大小无关,所以删除过期文件与提高Kafka性能无关。

4、Kafka会为每一个Consumer Group保留一些metadata信息——当前消费的消息的position,也即offset。这个offset由Consumer控制。正常情况下Consumer会在消费完一条消息后递增该offset。当然,Consumer也可将offset设成一个较小的值,重新消费一些消息。因为offet由Consumer控制,所以Kafka broker是无状态的,它不需要标记哪些消息被哪些消费过,也不需要通过broker去保证同一个Consumer Group只有一个Consumer能消费某一条消息,因此也就不需要锁机制,这也为Kafka的高吞吐率提供了有力保障。

5、kafka使用默认的副本因子是1,也就是没有副本,因为:

在kafka的开发者看来副本似乎是一个附加的东西,没有大量的使用,这有很大的缺点:slave不活跃,吞吐量受到严重影响,它需要的精确的手动配置等

三、遇到的问题

1、无法发送或者消费消息

WARN [Producer clientId=console-producer] Connection to node -1 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)


猜你喜欢

转载自blog.csdn.net/fst438060684/article/details/80520486
今日推荐