kafka读书笔记《kafka并不难学》
======第一章
1 在高并发场景,如大量插入、更新数据库会导致锁表,导致连接数过多的异常,此时需要消息队列来缓冲一下。消息队列通过异步处理请求来缓解压力
2 消息队列采用异步通信机制
消息队列拥有先进先出的特性
3 利用先见先出的特性可以做限流。如秒杀中,当消息队列满的时候,返回用户“商品已售完”,这样限制了一部分人能购买成功
4 activeMQ不支持水平扩展,但kafka支持
5 自定义发送到哪个区:可以对消息的key取哈希值,然后哈希值对分区数取模,得到分区
6 消费者数<=分区数,大于分区数没有,浪费资源
7 分区是物理层面的,不通分区对应不通数据文件
8 一个分区只在一个broker上,一个broker可以有多个分区
9 每条record包含一个键、值和时间戳
=====第二章
kafka使用scada编写的,安装前需要安装JDK。
kafka集群需要zookeeper
2.2.3 介绍了免密登陆的设置方法
2.2.4 介绍了zookeeper的安装
无论单机还是集群,先启动的zookeeper,然后启动的kafka
__consumer_offsets里记录了kafka消费者产生的消费记录,其中包含偏移量offset、时间戳和线程名
控制器就是kafka的一个broker,除具有一般broker的功能外,还有选举主题分区leader的功能
=====第三章
通过describe 和 under-replicated-partitions 查看正在同步的分区,若控制台没有打印任何信息,说明没有正在同步的分区,若有打印,则要关注下这些分区,可能节点出现异常或同步速度慢
通过describe 和 unavilable-partions查看不可用的分区
若想删除主题,在启动kafka集群之前选哟开启删除主题的开关,该属性默认是关闭的
在kafka系统中,主题的分区只能增加,不能减少
==========第4章