工作中用的最多的消息中间件是kafka,下面重新介绍下
1.kafka 特性
这个了解下,网上到处都是
-
高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒
-
可扩展性:kafka集群支持热扩展
-
持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失
-
容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点失败)
-
高并发:支持数千个客户端同时读写
2. Kafka架构组件
每类数据创建一个topic,把向topic发布消息的客户端称作producer,从topic订阅消息的客户端称作consumer。Producers和consumers可以同时从多个topic读写数据。一个kafka集群由一个或多个broker服务器组成,它负责持久化和备份具体的kafka消息。
- topic:消息存放的目录即主题
- Producer:生产消息到topic的一方
- Consumer:订阅topic消费消息的一方
- Broker:Kafka的服务实例就是一个broker
3. 问题
3.1 kafka 消息是一条一条拉下来消费
3.2 kafka 如何保证生产者消息有序
3.2.1 一个 topic,一个 partition,一个 consumer,内部单线程消费,这样的状态数据消费是有序的