名词介绍
MQ
- Message Queue
- 消息队列
- 传统应用场景
1. 同步处理
直接调用接口对业务进行调用 (流处理)
优点:速度快
缺点:不安全
2. 异步处理
将请求发送到MQ中等待 在没有得到反馈之前 先对请求做出响应 (批处理)
优点:
1. 解耦合
可以将程序之间分隔,易于去拓展 、优化、更改两边的处理过程 。
2.可恢复性
当系统的部分组件发生故障时,消息仍然在MQ中 在系统恢复后可以将消息恢复过来
3. 缓冲
可以控制和优化生产消费数据的速度,解决,生产消息和消费消息处理速度不一致的情况 生产>消费
4. 削峰
在面临访问量剧增的情况下,在生产数据达到一定数值时,将数据先存储到MQ中进行暂存
缺点:处理速度慢
Producer:
消息生产者,就是向Kafka broker发消息的客户端
Consumer:
消息消费者,向Kafka broker取消息的客户端
Cluster:
集群
Broker(装载了kafka节点的服务器):
一台Kafka服务器就是一个broker。一个集群又多个broker组成。一个broker可以容纳多个topic
Partition:
为了实现拓展性,一个非常强大的topic可以分布到多个broker(服务器)上,一个topic可以分为多个partition,每个partition都是一个有序的队列
Topic(主题):
用与消息的分类,可以理解为一个队列,生产者和消费者面向的都是一个topic
Replica:
副本,为保证集群中的某个节点发生故障时,该节点的partition数据不丢失,
且Kafka仍能够继续工作,kafka提供了副本机制,一个topic的每一个分区都有若干个副本,一个leader和若干个follower。
Replication:
复制
Offset:
在0.9版本之前将偏移量存储到Zookeeper中,在0.9版本之后将数据存储在本地磁盘,定时进行销毁