kafka删除topic能恢复嘛 rabbitmq kafka区别?

[更新]
·
·
分类:互联网
4700 阅读

rabbitmq

rabbitmq kafka区别?

kafka区别?

1.应用场景方面
RabbitMQ:用于实时的,对可靠性要求较高的消息传递上。
kafka:用于处于活跃的流式数据,大数据量的数据处理上。
2.架构模型方面
producer,broker,consumer
RabbitMQ:以broker为中心,有消息的确认机制
kafka:以consumer为中心,无消息的确认机制
3.吞吐量方面
RabbitMQ:支持消息的可靠的传递,支持事务,不支持批量操作,基于存储的可靠性的要求存储可以采用内存或硬盘,吞吐量小。
kafka:内部采用消息的批量处理,数据的存储和获取是本地磁盘顺序批量操作,消息处理的效率高,吞吐量高。
4.集群负载均衡方面
RabbitMQ:本身不支持负载均衡,需要loadbalancer的支持
kafka:采用zookeeper对集群中的broker,consumer进行管理,可以注册topic到zookeeper上,通过zookeeper的协调机制,producer保存对应的topic的broker信息,可以随机或者轮询发送到broker上,producer可以基于语义指定分片,消息发送到broker的某个分片上。

Kafka的特点有容错性吗?

有的。
kafka是LinkedIn在2014年开源的一个复杂事件处理系统,将数据组织成事件流进行处理。即stream processing.
kafka特点
1. 分布式系统,易于扩展,容错性好
2. 使用日志分区,便于实现消息并发消费
3. 实时处理数据,并且对消息持续存储
术语解释
Topic: kafka中的消息以topic为单位进行归纳
producer: 向kafka发送消息的为producer
consumer: 从kafka中消费消息为consumer
broker: kafka集群中的一个服务即为一个broker
基于分布式,容错性较好

kafka消息存储类型?

Kafka 消息以 Partition 作为存储单元。
Partition 文件存储方式
每个 Topic 的消息被一个或者多个 Partition 进行管理,Partition 是一个有序的,不变的消息队列,消息总是被追加到尾部。一个 Partition 不能被切分成多个散落在多个 broker 上或者多个磁盘上。
它作为消息管理名义上最大的管家内里其实是由很多的 Segment 文件组成。如果一个 Partition 是一个单个非常长的文件的话,那么这个查找操作会非常慢并且容易出错。为解决这个问题,Partition 又被划分成多个 Segment 来组织数据。Segment 并不是终极存储,在它的下面还有两个组成部分:
索引文件:以 .index 后缀结尾,存储当前数据文件的索引;
数据文件:以 .log 后缀结尾,存储当前索引文件名对应的数据文件。