❝消息队列也叫 MQ(Message Queue)。Kafka作为消息队列中的优秀平台,被很多公司使用,是一种高吞吐量的分布式发布订阅消息系统,本篇给大家总结了27道Kafka知识点或者说面试题,持续更新中。。。
❞
Apache Kafka是由Apache开发的一种发布订阅消息系统。
Producer API
Consumer API
Streams API
Connector API
Admin API
Kafka集群中,一个kafka实例被称为一个代理(Broker)节点。
消息的生产者被称为Producer。
Producer将消息发送到集群指定的主题中存储,同时也自定义算法决定将消息记录发送到哪个分区?
消息的消费者,从kafka集群中指定的主题读取消息。
主题,kafka通过不同的主题却分不同的业务类型的消息记录。
每一个Topic可以有一个或者多个分区(Partition)。
一个分区只对应一个Broker,一个Broker可以管理多个分区。
每个主题在创建时会要求制定它的副本数(默认1)。
实际写入到kafka集群并且可以被消费者读取的数据。
每条记录包含一个键、值和时间戳。
日志收集、消息系统、活动追踪、运营指标、流式处理、时间源等。
SSD的性能比普通的磁盘好,这个大家都知道,实际中我们用普通磁盘即可。它使用的方式多是顺序读写操作,一定程度上规避了机械磁盘最大的劣势,即随机读写操作慢,因此SSD的没有太大优势。
log.dirs 多个
log.dir 单个
log.dirs
好处:
提升读写性能,多块物理磁盘同时读写高吞吐。
故障转移。一块磁盘挂了转移到另一个上。
auto.create.topics.enable
显式地配置生产者端的参数partitioner.class
参数为你实现类的 全限定类名,一般来说实现partition方法即可。
Producer 、Broker。
做好幂等。
数据库方面可以(唯一键和主键)避免重复。
在业务上做控制。
异步模式
同步模式
一个消费者组,可以有一个或者多个消费者程序。
消费者组名(GroupID)一般由具有唯一性字符串表示。
如果一个消费者组订阅了主题,则该主题每个分区只能分配给某一个消费者组中的某一个消费者程序。
参考:
本文使用 mdnice 排版