Kafka:消息中间件(暂存并转发消息–生产者:发布与消费者:订阅系统)
没错,就是交换机:将消息从生产者转发给消费者
不同生产者通过不同topic主题向不同消费者提供不同消息。
kafka的Topic名表示对应的消息类型

Topic的分区partition可以分布在不同服务器上。

kafka(broker)包含多个topic,topic包含多个partition,partition可以分布在不同服务器上。

生产者向kafka写入数据(定位后写入)

消费者从kafka读取数据(定位后连续读取)

Kafka工作流程
1)生产者定期向主题发送消息。
2)Kafka broker将所有消息存储在为该特定主题配置的分区中。它确保消息在分区之间平等共享。如果生产者发送两个消息,并且有两个分区,则Kafka将在第一个分区中存储一个消息,在第二个分区中存储第二个消息。
3)消费者订阅一个特定的主题。
4)一旦消费者订阅了一个主题,Kafka将向消费者提供该主题的当前偏移量,并将偏移量保存在ZooKeeper中。
5)消费者将定期请求Kafka新消息。
6)一旦Kafka收到来自生产者的消息,它会将这些消息转发给消费者。
7)消费者将收到消息并处理它。
8)一旦消息被处理,消费者将向Kafka broker发送确认。
9)一旦Kafka收到确认,它会将偏移量更改为新值,并在ZooKeeper中进行更新。由于ZooKeeper中保留了偏移量,因此即使在服务器出现故障时,消费者也可以正确读取下一条消息。
3分钟演示Kafka的消息发送:异步,批量,分区,主从备份
浅谈kafka之partition
我用kafka两年,踩坑无数。。。(实例讲解)
Topic的分区partition可以分布在不同服务器上。

kafka使用磁盘而不是内存
kafka使用磁盘而不是内存
Kafka最核心的思想是使用磁盘,而不是使用内存,可能所有人都会认为,内存的速度一定比磁盘快,我也不例外。在看了Kafka的设计思想,查阅了相应资料再加上自己的测试后,发现磁盘的顺序读写速度和内存持平。
