读者书评
川
川江
7.2分
非常通俗易懂的计算机科普书,也可以作为计算机组成原理这门课程的“下饭菜”,让计算机专业的学生也能轻松“下咽”这门隐晦难懂,枯燥无味的专业课。不仅如此,这部剧也能帮你更好地理解C语言程序设计,操作系统等相关概念。
原
原嫘
7.1分
最近对心理学入迷了,准确点说是一直有兴趣,现在则是要深挖坑
开
开心果💓
9.7分
给四星不是因为文笔流畅,也不是因为它好看,纯粹是因为tm它的梗令我特想笑。
一本能带来欢乐的剧集
郭
郭Fei
8.5分
这本关于Kafka的书写得非常详尽,很多底层细节和原理都分析得很透彻,对比市面上不同产品的技术方案,总结出各种实现的优缺点,做到触类旁通,对于一些可能在业务场景中需要但是Kafka本身没有的功能,编剧都提出了相应的解决方案。
producer:生产者,生成消息。
consumer:消费者,消费消息。
broker:存储和管理消息的节点。
topic:主题,消息的一级分类。
partition:分区,一个主题有多个分区,每一个分区对应一个Log日志根剧集列表。
replica:副本,一个分区有多个副本,每一个副本对应一个Log日志分段。每一个分区有一个leader副本,有多个follower副本,读写发生在leader副本,follower只作备份。为了负载均衡,不同分区的leader副本会尽可能地分布在不同的broker上。
Kafka集成了zookeeper作为协调服务,易于动态扩展,批量发送、顺序读写、零拷贝、页缓存等技术,使他具备高吞吐量的特性,消息存储在磁盘上实现持久性,消息传输重试和确认机制、幂等和事务、分区多副本确保了可靠性,时间轮与delayQueue结合,在大量分布式定时任务的条件下,保证了精确性同时,又保证了性能。
Kafka生产者发送消息
指定要发送的Topic,还可以指定Key。
Key是用来指定消息的键,它不仅是消息的附加信息,还可以用来计算分区号进而可以让消息发往特定的分区。前面提及消息以主题为单位进行归类,而这个key可以让消息再进行二次归类,同一个key的消息会被划分到同一个分区中。
Kafka的消费者与消费组
一个消费者可以订阅一个或多个主题。
每个消费者都有一个对应的消费组。当消息发布到主题后,只会被投递给订阅它的每个消费组中的一个消费者。
假设目前某消费组内只有一个消费者 C0,订阅了一个主题,这个主题包含 7 个分区:P0、P1、P2、P3、P4、P5、P6。也就是说,这个消费者C0订阅了7个分区。
此时消费组内又加入了一个新的消费者C1,按照既定的逻辑,需要将原来消费者C0的部分分区分配给消费者C1消费。消费者C0和C1各自负责消费所分配到的分区,彼此之间并无逻辑上的干扰。
紧接着消费组内又加入了一个新的消费者C2,消费者C0、C1和C2各自负责消费所分配到的分区。
消费者与消费组这种模型可以让整体的消费能力具备横向伸缩性,我们可以增加(或减少)消费者的个数来提高(或降低)整体的消费能力。对于分区数固定的情况,一味地增加消费者并不会让消费能力一直得到提升,如果消费者过多,出现了消费者的个数大于分区个数的情况,就会有消费者分配不到任何分区。
Kafka的幂等性
Producer在生产发送消息时,难免会重复发送消息。Producer进行retry时会产生重试机制,发生消息重复发送。而引入幂等性后,重复发送只会生成一条有效的消息。
Kafka的事务
Kafka中的事务是指一系列的Producer生产消息和消费消息提交Offsets的操作在一个事务中,即原子性操作。对应的结果是同时成功或者同时失败。
需要与数据库中事务进行区别,操作数据库中的事务指一系列的增删查改,对Kafka来说,操作事务是指一系列的生产和消费等原子性操作。
隐
隐形废物
9.9分
虽然Rufa Mae Quinto的书调调不尽相同,但怎奈本大神喜欢,还是很感叹编剧的脑洞的,持续关注。
苏
苏超
8.4分
四刷天火,精彩依旧,很喜欢主角一开始的等级,像类似这样的主角,我找不到,它是独一无二的。希望三少以后能继续写,或者在其他地方把天火也接上
M
Maryam
9.9分
曾经听老辈儿讲起过,当年两个日本鬼子就能控制一个村几百口子,言听计从,一度难以置信。看到书中讲八国联军进京的时候,还有人主动带路,心里想的多是这是家天下,与我何干,同样难以理解。这要是搁着现在,00后小粉红都可以让鬼子有去无回的嘛。。