kafka是一个消息队列,可以用作数据库吗?

mtb9vblg  于 2021-06-04  发布在  Kafka
关注(0)|答案(2)|浏览(739)

有些地方提到Kafka就是发布订阅消息。Kafka提到的其他来源是消息队列。我可以问一下它们之间的区别吗?卡克法可以用作数据库吗?

smtd7mpg

smtd7mpg1#

kafka是一个像数据库一样的存储库,但没有索引,每个查询都是对数据的完整扫描。它将数据存储在不能修改的文件中。例如,如果使用事件源,则可以将系统的所有事件保存在kafka中,并在系统出现错误时重新处理所有事件。
想象一下,kafka可以在多台服务器上拆分一个非常大的文件(10tb或更多),并提供一种使用分区以分布式方式读取该文件的方法(您拥有的分区越多,可以并行读取的应用程序就越多)。
由于kafka是一个存储器,因此它还可以用作消息队列或发布-订阅系统。

oalqel3c

oalqel3c2#

有两种模式:发布-订阅和消息队列。有一些地方讨论了不同之处。在这里
Kafka特别支持这两种模式。对于publish-subscribe模式,kafka具有支持此模式的publisher/subscriber。发布者向一个主题发送消息,订阅者可以订阅和接收该主题的消息。对于排队模式,kafka有一个称为消费群的概念。在同一个用户组中,所有用户都将共享作业,从而平衡工作负载。
由于kafka从一开始就具有很强的灵活性,因此在设计系统时被广泛应用于许多软件模式。就我个人而言,我不会将kafka本身称为数据库,但您可以使用kafka作为存储,特别是通过一些机制,如日志压缩。参考1参考2

相关问题