你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

【运维心得】为什么Kafka也算消息队列?

2021/12/6 11:14:42

之前的系统中使用了Kafka,不过对于Kafka的运行机制一直不太了解,同时也不知道为啥别人都说它比其他三个著名的消息队列更好用。今天就把积累出来的认知总结一下,便于今后自己学习和记忆,主要是个人的理解,详细的机制和原理,仍需要去查一些详细的技术文章,或者直接上手去操作Kafka。

目录

消息队列

Kafka

Kafka更好用


消息队列

消息队列类似于快递柜的比喻,个人认为十分的形象,包括对于生产者(快递员)和消费者(取快递)的类比,都十分的贴切。十分怀疑当时快递柜的出现,是一个对消息队列是否熟悉的程序员出身的产品经理想出来的。知道了这个类比,那么理解消息队列就很简单了。

AMQP协议(Advanced Message Queuing Protocol,高级消息队列协议)是一个进程间传递异步消息的网络协议。下面这张图需要牢记,这个就是原理图了。

三个著名的消息队列大家应该很容易就知道,这里只罗列一下它们的名称:

ActiveMQ、RabbitMQ、RocketMQ

发现了吗?是没有Kafka的,为什么呢?接着往下看。

Kafka

kafka是一个分布式、高吞吐量、高扩展性的消息队列系统。主要因为Kafka没有遵守JMS的接口规范,所以把自己给单列了。

网上介绍的文章很多,这里就不再拷贝复制了,只说个人的理解:

  1. Kafka的确做了很多改进,比如多对多,一般系统都很难做到,它实现了;
  2. Kafka不会立即删除被消费的消息,可以自己定义,是一个重要区别;
  3. 引入了分区的概念,这样可以把写入做到分布式,而且因为比较小,写入到磁盘的速度极快,可以说,Kafka是用空间换时间的典型
  4. 稳定性好,采取集群的方式,以资源来换稳定性

Kafka更好用

个人理解,正是由于上面的一些特色,稳定性好,效率高,唯一的缺点大概就是耗费资源多,好在现在SSD磁盘都已经很便宜了,使得Kafka在大型消息队列应用面前,可以游刃有余,当然优化的参数要调整好,否则有可能会碰到主节点宕机,整个消息队列都宕机的风险。

最后,还是放一张原理图,帮助记忆: