前言
一直在网上文章看到kafka是磁盘顺序写,所以效率更高,但是从磁盘的物理设计来考虑,又不可能真正的顺序,一直很纠结,找了一些资料,简单记录
kafka
因为Kafka消息在使用时不会被删除(就像在其他消息代理中一样)Kafka不会通过不断创建和删除许多变量长度来创建碎片文件系统文件。相反,它会创建段文件,然后附加到该文件,直到达到1GB(可配置的限制)
建议最佳做法是将这些Kafka提交日志文件保存在专用文件系统上,以免其他应用程序读取和写入可变长度文件到同一文件系统中。
rabbitMQ
rabbitMQ对于可靠性的设计更好,有ack消息确认机制,当ack消息确认后,该消息从队列删除,不管是真正的磁盘删除还是修改消息状态,都要涉及到文件的寻址,所以会稍慢