消息队列和Kafka

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中

你可能感兴趣的:(java)