1.消息队列:将需要发送的数据存放在队列中
2.消息队列中间件:存储消息的组件(软件),如Kafka、RabbitMQ、ActiveMQ、RocketMQ、ZeroMQ
3.Kafka应用场景:
异步处理
系统解耦
流量削峰
4.消息队列模式
点对点模式:每个消息只有一个消费者,被消费后,消息就存在了
发布订阅模式:每个消息可以有多个订阅者(消费者),发布者和订阅者有时间上的依赖性
为了消费信息,订阅者需要提前订阅消息的主题
5.Kafka:由scala和java开发
Apache Kafka 是一个分布式流平台,关键能力:
5.1发布和订阅流数据流,类似消息队列
5.2以容错的方式 存储数据流
5.3处理数据流
6.Kafka组件
broker:单个服务器节点,多个broker组成Kafka集群,通过ZooKeeper维护集群
broker是无状态的
topic:主题,代表某一类消息
消息一旦发送到主题中,就不能更改
ZooKeeper:管理和协调broker,存储了Kafka的元数据(topic、partition、consumer)
producer: 将数据推送给topic
consumer:从topic接收消息
consumer-group:是可扩展的、有容错性的消费者机制
一个消费者组有唯一ID
一个组内的所有消费者共同消费topic的所有partition数据
partition:分区,一个topic可以分成多个partition
replication:副本,将数据复制多个副本,分布在多个broker上
offset:偏移量,记录着要消息消费的进度,
offset保存在ZooKeeper中