分布式消息队列kafka

简介: kafka是Linkedin开源的分布式发布-订阅消息系统(消息队列)kafka特点1 高吞吐率、低延迟,每秒处理几十万消息,延迟最低几毫秒2 可扩展性,支持动态扩展节点数据3 持久性与可靠性,数据被持久化磁盘,支持数据多副本防止数据丢失4 高容错,允许节点失败5 高并发,支持上千个客...

kafka是Linkedin开源的分布式发布-订阅消息系统(消息队列)

kafka特点

1 高吞吐率、低延迟,每秒处理几十万消息,延迟最低几毫秒

2 可扩展性,支持动态扩展节点数据

3 持久性与可靠性,数据被持久化磁盘,支持数据多副本防止数据丢失

4 高容错,允许节点失败

5 高并发,支持上千个客户端同时读写


架构如图


kafka:produce

1 向broker发送消息

2 可通过任意一个broker发现其他broker的位置信息

3 消息组成 topic key value timestamp


kafka:broker

1 producer和consumer之间的桥梁

   从producer端接收消息,并保存下来

   将消息发送给订阅的consumer

2 可将消息可靠地缓存一段时间

   每个消息保存成多副本(默认3)

   可设置保存时间(默认时间)


kafka:partition与topic

topic

  用户划分message的逻辑概念,一个topic可以分布到不通的broker上

partition

  kafka横向扩展和一切并行化的基础,每个topic至少分成1个partition

  消息在partition中是有编号的,称为“offset”

  kafka以partition为单位对消息进行备份(replica),每个partition可以配置至少有1个replica


kafka:consumer

  负责从kafka中读取数据,并进行处理

Consumer group

  多个consumer可形成一个group,同时读取某个topic。

  每个consumer读取一个或多个partition

Consumer position

  每个consumer自己维护读取的位置(offset,一旦挂掉后,重启可继续读取)




kafka架构图


kafka:服务保证

顺序保证

  同一个producer发送到单个topic的同一partition的消息是顺序的

  Consumer按照消息在日志中的写入顺序读取消息

Producer产生的数据由Consumer消费

容错

  如果消息的副本数是N,则N-1台机器宕机后不会导致丢失数据

应用场景 :监控 、消息队列、站点的用户活动追踪 、流处理、



相关文章
|
1月前
|
消息中间件 存储 监控
消息队列系统中的确认机制在分布式系统中如何实现
消息队列系统中的确认机制在分布式系统中如何实现
|
1月前
|
消息中间件 大数据 Kafka
大数据-77 Kafka 高级特性-稳定性-延时队列、重试队列 概念学习 JavaAPI实现(二)
大数据-77 Kafka 高级特性-稳定性-延时队列、重试队列 概念学习 JavaAPI实现(二)
28 2
|
1月前
|
消息中间件 存储 监控
【10月更文挑战第2天】消息队列系统中的确认机制在分布式系统中如何实现
【10月更文挑战第2天】消息队列系统中的确认机制在分布式系统中如何实现
|
1月前
|
消息中间件 NoSQL 大数据
大数据-77 Kafka 高级特性-稳定性-延时队列、重试队列 概念学习 JavaAPI实现(一)
大数据-77 Kafka 高级特性-稳定性-延时队列、重试队列 概念学习 JavaAPI实现(一)
33 1
|
29天前
|
消息中间件 存储 监控
消息队列系统中的确认机制在分布式系统中如何实现?
消息队列系统中的确认机制在分布式系统中如何实现?
|
3月前
|
消息中间件 存储 监控
消息队列系统中的确认机制在分布式系统中如何实现?
消息队列系统中的确认机制在分布式系统中如何实现?
|
3月前
|
消息中间件 存储 Java
分布式消息队列基础知识
本文概述了分布式消息队列的基本概念、组成、模式、基础与高级功能,以及它在业务开发中的应用和核心技术,为深入学习RocketMQ等消息队列组件提供基础知识。
分布式消息队列基础知识
|
4月前
|
消息中间件 Java Kafka
kafka Linux环境搭建安装及命令创建队列生产消费消息
kafka Linux环境搭建安装及命令创建队列生产消费消息
103 4
|
3月前
|
消息中间件 存储 Kafka
现代消息队列与云存储问题之Kafka在海量队列场景下存在性能的问题如何解决
现代消息队列与云存储问题之Kafka在海量队列场景下存在性能的问题如何解决
|
3月前
|
消息中间件 存储 监控
消息队列在分布式系统中如何保证数据的一致性和顺序?
消息队列在分布式系统中如何保证数据的一致性和顺序?

相关产品

  • 云消息队列 Kafka 版