写点什么

随便谈一下 kafka 消息队列

用户头像
Regan Yue
关注
发布于: 刚刚

随便谈一下 kafka 消息队列

今天就随便说一说 kafka 吧,看到哪说到哪,我们有时为了改善系统的性能不得不采取很多措施,消息队列就是其中一个十分有效的方法,我们平时的短信群发,为了避免一下子涌入大量数据,往往会把这些短信送入发送队列,排队一条一条的发送。我们的消息队列和这个发送队列也类似。


消息队列也有几种不同的类型,其中一种是点对点的消息队列。点对点说的是一个特定消息生产者生产消息放入队列,然后就会有一个消费者去队列中取数据,所以一个消息只会对应一个消费者。还有一种是发布/订阅的消息队列,就是一个消息会对应多个消费者。

Kafka 是什么?

  1. Kafka 是由 Scala 和 Java 编写的。

  2. Kafka 现在由 Apache 开发。

  3. Kafka 是具有高吞吐量的特性:每秒可处理高达百万的消息。

Kafka 的优点

  1. 降低了系统架构的难度,将具体的任务细分到各个节点,谁发布任务,谁去处理任务都被安排妥当。

  2. 降低了编程的难度,Kafka 起到了连接各个子系统的作用。

  3. 是分布式的,无需关机也可扩展集群。

消费者分组

消费者分组是用来归类同类消费者。


假如我们有多个消费者,其中消费者 c0 要从 p0 去拿数据,消费者 c1 也要从 p0 去拿数据,那么我们就可以把 c0 和 c1 放到一个消费者组中,这个消费者组中的消费者共享消息,可以节约一些连接的时间。

应用场景

  1. Kafka 是一直等待生产者生产消息,它是用来处理活跃的数据流的,如果数据量不多,是完全没有必要使用 Kafka 的。

  2. 需要同时处理在线消息和离线日志的情况下。

其它的消息队列

  1. RabbitMQ:是一种重量级的消息队列,具有可伸缩性和消息持久化的特性。

  2. ZeroMQ:号称最快的消息队列,在吞吐量上超过了 TCP 的性能。但是相关的技术比较复杂。

  3. ActiveMQ:中庸的一个消息队列系统。

  4. Redis:是一种 NoSQL 数据库也支持消息队列,数据量较小的时候性能比较强,但是数据量较大时就慢得令人绝望。

发布于: 刚刚阅读数: 2
用户头像

Regan Yue

关注

还未添加个人签名 2020.08.12 加入

对Go、Python、网络安全、区块链感兴趣. · 华为云云享专家 · 掘金资讯创作者

评论

发布
暂无评论
随便谈一下kafka消息队列