Kafka中消息队列的两种模式讲解

 更新时间:2022年05月05日 11:47:38   作者:MnerX  
这篇文章主要介绍了Kafka中消息队列的两种模式讲解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Kafka消息队列的两种模式

消息队列包括两种模式,点对点模式(point to point, queue)和发布/订阅模式(publish/subscribe,topic)

1、点对点模式

点对点模式下包括三个角色:

  • 消息队列
  • 发送者 (生产者)
  • 接收者(消费者)

消息发送者生产消息发送到queue中,然后消息接收者从queue中取出并且消费消息。消息被消费以后,queue中不再有存储,所以消息接收者不可能消费到已经被消费的消息。

点对点模式特点:

  • 每个消息只有一个接收者(Consumer)(即一旦被消费,消息就不再在消息队列中);
  • 发送者和接收者间没有依赖性,发送者发送消息之后,不管有没有接收者在运行,都不会影响到发送者下次发送消息;
  • 接收者在成功接收消息之后需向队列应答成功,以便消息队列删除当前接收的消息;

 2、发布/订阅模式 

发布/订阅模式下包括三个角色:

  • 角色主题(Topic)
  • 发布者(Publisher)
  • 订阅者(Subscriber)

发布者将消息发送到Topic,系统将这些消息传递给多个订阅者。

发布/订阅模式特点:

  • 每个消息可以有多个订阅者;
  • 发布者和订阅者之间有时间上的依赖性。针对某个主题(Topic)的订阅者,它必须创建一个订阅者之后,才能消费发布者的消息。
  • 为了消费消息,订阅者需要提前订阅该角色主题,并保持在线运行;

Kafka消息队列模型图解

Kafka 的消息队列一般分为两种模式:点对点模式和发布订阅模式

Kafka 是支持消费者群组的,也就是说 Kafka 中会有一个或者多个消费者,如果一个生产者生产的消息由一个消费者进行消费的话,那么这种模式就是点对点模式

在这里插入图片描述

如果一个生产者或者多个生产者产生的消息能够被多个消费者同时消费的情况,这样的消息队列成为发布订阅模式的消息队列

在这里插入图片描述

队列模型非常简单 topic主题:

队列 就是消息的分类。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • servlet异步请求的实现

    servlet异步请求的实现

    本文主要介绍了servlet异步请求的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • Java中的LinkedHashSet集合解读

    Java中的LinkedHashSet集合解读

    这篇文章主要介绍了Java中的LinkedHashSet集合解读,LInkedHashSet这个容器不知道大家在平时的工作用的多吗,反正我基本上没有用过,所以,本文主要对于它的特点、使用场景、实现原理,做一个讲解,希望对大家平时的工作有所帮助,需要的朋友可以参考下
    2023-09-09
  • java读取resource目录下文件的方法示例

    java读取resource目录下文件的方法示例

    这篇文章主要介绍了利用java读取resource目录下文件的方法,文中给出了详细的示例代码,相信对大家具有一定的参考借鉴,需要的朋友们下面来一起看看吧。
    2017-02-02
  • java实现双色球彩票游戏

    java实现双色球彩票游戏

    这篇文章主要为大家详细介绍了java实现双色球彩票游戏,超级简单的逻辑,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-06-06
  • SpringBoot参数校验:@Valid与@Validated使用详解

    SpringBoot参数校验:@Valid与@Validated使用详解

    这篇文章主要介绍了SpringBoot参数校验:@Valid与@Validated使用详解,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • Springboot实现导入导出Excel的方法

    Springboot实现导入导出Excel的方法

    今天带各位小伙伴学习Springboot实现导入导出Excel的方法,文中有非常详细的介绍,对正在学习java的小伙伴们有很好地帮助,需要的朋友可以参考下
    2021-05-05
  • MyBatis常用的jdbcType数据类型

    MyBatis常用的jdbcType数据类型

    这篇文章主要介绍了MyBatis常用的jdbcType数据类型的相关资料,需要的朋友可以参考下
    2016-12-12
  • Java的堵塞队列BlockingQueue详解

    Java的堵塞队列BlockingQueue详解

    这篇文章主要介绍了Java的堵塞队列BlockingQueue详解,阻塞队列常用于生产者和消费者的场景,生产者是向队列里添加元素的线程,消费者是从队列里取元素的线程,需要的朋友可以参考下
    2023-12-12
  • 关于集合和字符串的互转实现方法

    关于集合和字符串的互转实现方法

    下面小编就为大家带来一篇关于集合和字符串的互转实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • idea中MavenWeb项目不能创建Servlet的解决方案

    idea中MavenWeb项目不能创建Servlet的解决方案

    这篇文章主要介绍了idea中MavenWeb项目不能创建Servlet的解决方案,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02

最新评论