kafka
消息队列,内是列表,列表的每个节点就是消息,有序号,offset指代
对于消息队列的优化
1.高性能:
(1)对消息进行分类,每一类是一个topic topic1,topic2......,增加多个消费者,生产者
(2)生产者将数据按照topic 投递到不同的队列中
消费者根据需要订阅不同的topic
这样就降低了topic队列的压力
(3)可以将单个topic队列拆分成好几段,每段就是一个partition,有partition1,partition2.......
有多个消费者,每个消费者负责一个partition分区
2.高扩展性:
每个partition都在同一台机器上会导致单个机器cpu内存过高,将每个partition分配到多个机器上,
每一台机器就代表一个broker
3.高可用:
为了防止broker损坏,再给每个partitiion加副本,称为replicas , p1叫leader,p1副本叫follower
leader负责读写,follower负责同步p1的消息,再将p1,p2分散到不同的broker上面
4.持久化和过期策略:
再将所有的broker增加保留策略 (retention policy),定期清除。然后存储到磁盘上,保证磁盘不会超载
5.消费者组consumer group
新增的消费者不会直接跟着最新的offset消费,可从某个offset开始消费 ,消费者组consumer group,每个
消费者消费自己的partiittion进度胡不打搅
6.维护
加入zookeeper管理broker