更新时间:2021年10月06日10时59分 来源:传智教育 浏览次数:
Apache Kafka是一个分布式流平台。一个分布式的流平台应该包含3点关键的能力:
1. 发布和订阅流数据流,类似于消息队列或者是企业消息传递系统
2. 以容错的持久化方式存储数据流
处理数据流
英文原版
Publish and subscribe to streams of records, similar to a message queue or enterprise
messaging system.
Store streams of records in a fault-tolerant durable way.
Process streams of records as they occur.
1. Linkedin还是挺牛逼的
Kafka比ActiveMQ牛逼得多
前面我们了解到,消息队列中间件有很多,为什么我们要选择Kafka?
特性 |
ActiveMQ |
RabbitMQ |
Kafka |
RocketMQ |
所属社区/公司 |
Apache |
Mozilla Public License |
Apache |
Apache/Ali |
成熟度 |
成熟 |
成熟 |
成熟 |
比较成熟 |
生产者-消费者模式 |
支持 |
支持 |
支持 |
支持 |
发布-订阅 |
支持 |
支持 |
支持 |
支持 |
REQUEST-REPLY |
支持 |
支持 |
- |
支持 |
API完备性 |
高 |
高 |
高 |
低(静态配置) |
多语言支持 |
支持JAVA优先 |
语言无关 |
支持,JAVA优先 |
支持 |
单机呑吐量 |
万级(最差) |
万级 |
十万级 |
十万级(最高) |
消息延迟 |
- |
微秒级 |
毫秒级 |
- |
可用性 |
高(主从) |
高(主从) |
非常高(分布式) |
高 |
消息丢失 |
- |
低 |
理论上不会丢失 |
- |
消息重复 |
- |
可控制 |
理论上会有重复 |
- |
事务 |
支持 |
不支持 |
支持 |
支持 |
文档的完备性 |
高 |
高 |
高 |
中 |
提供快速入门 |
有 |
有 |
有 |
无 |
首次部署难度 |
- |
低 |
中 |
高 |