今天小天来给大家分享一些关于rocketmq和kafka方面的知识吧,希望大家会喜欢哦

kafkarocketmq区别 rocketmq和kafkakafkarocketmq区别 rocketmq和kafka


kafkarocketmq区别 rocketmq和kafka


1、上图简述了broker写数据以及同步的一个过程。

2、broker写数据只写到PageCache中,而pageCache位于内存。

3、这部分数据在断电后是会丢失的。

4、pageCache的数据通过linux的flusher程序进行刷盘。

5、刷盘触发条件有三:Kafka工作流程1、一般是先会创建一个主题,比如说TopicA,有三个分区,有两个副本(leader+follower总共2个),同一个分区的两个副本肯定不在一个。

6、2、Kafka工作流程基础总结:1)broker:broker代表kafka的,Broker是分布式部署并且相互之间相互的,启动的时候向zookeeper注册,在Zookeeper上会有一个专门用来进行Broker列表记录的:/brokers/ids。

7、3、流程描述:用户首先构建待发送的消息对象ProducerRecord,然后调用KafkaProducer#send方法进行发送。

8、5、和其他的中间件一样,kafka每次发送数据都是向Leader分区发送数据,并顺序写入到磁盘,然后Leader分区会将数据同步到各个从分区Follower,即使主分区挂了,也不会影响服务的正常运行。

9、Kafka——分区partition在之前的例子里(Kafka生产者——向Kafka写入数据),ProducerRecord对象包含了目标主题、键和值。

10、步:将所有主题分区组成TopicAndPartition列表,然后对TopicAndPartition列表按照hashCode进行排序,按照轮询的方式发给每一个消费线程。

11、在Kafka中,每个Topic会包含多个分区,默认情况下个分区只能被个消费组下的个消费者消费,这就产了分区分配的问题。

12、分区越多所需要的文件句柄也就越多,可以通过配置作系统的参数增加打开文件句柄数。

13、一句话,Kafka的Message存储采用了分区(parti五. 如何安装RabbitMQ?上面的案例介绍了MQ的一个使用场景,我这里是用RabbitMQ举例,现实项目中可能用到的是Kafka。

14、tion),分段(LogSegment)和稀疏索引这几个手段来达到了高效性。

15、kafka是一个分布式的、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统。

16、消息队列(三)kafka的一致性和失败处理策略处理消息需要是幂等的,消息的生产方和接收方都需要做到幂等性;发送放需要添加一个定时器来遍历重推未处理的消息,避免消息丢失,造成的事务执行断裂。

17、高吞吐:Kafka拥有很高的吞吐量,即使是在单性能比较低下的商用集群中,也能保证单每秒10万条消息的传输。

18、高容错:Kafka在设计上支持多分区、多副本的策略,拥有很强的容错性。

19、如果要保证一致性,需要生产者在失败后重试,不过重试又会导致消息重复的问题,一个解决方案是每个消息给一个的id,通过服务端的主动去重来避免重复消息的问题,不过这一机制目前Kafka还未实现。

20、这时rahbitMQ会立即将消息删除,这种情况下如果消费者出现异常而没能处理该消息(但是消息队列那边已经认为消息被消费了),就会丢失该消息。

21、至于解决方案,采用手动确认消息即可。

22、Kafka存储机制此时Producer端生产的消息会不断追加到log文件末尾,这样文件就会越来越大,为了防止log文件过大导致数据效率低下,那么Kafka采取了分片和索引机制。

本文到这结束,希望上面文章对大家有所帮助。