当前位置: 首页 > 知识库问答 >
问题:

Kafka中的公共订阅模式与点对点

陶唯
2023-03-14

我是Kafka的新手,所以很难理解pubsub模式。假设我有一个包含两个分区的主题(让我们称之为分区1、分区2)

我有3个消费者,其中

消费者1,消费者2——

消费者3--

假设所有3个消费者都从包含5条消息的分区1中读取

我的疑问是,

1.分区1中的所有5条消息是否都到达了每个消费者,即消费者1和消费者3?或者他们一个接一个地分享信息,因为Kafka保持的偏移可能不知道消费者属于同一个消费者群体还是不同的消费者群体?这叫发布订阅模式吗?

2.如果我想要点对点的模式,我所需要做的就是把同一消费者群体中的所有消费者都吐出来。我说得对吗?

共有1个答案

端木安国
2023-03-14

两个组不共享消息,同一组中的多个使用者不能使用同一分区。也没有排序保证说“consumer1”被分配给“partition1”(很可能“consumer1”死亡,两个分区都被分配给“consumer2”)。如果“消费者3”是该组的唯一成员,则它将从两个分区中读取数据。

偏移量按组跟踪,而不是消费者client.id

Kafka总是出版-订阅。点对点模型不会使用消息代理(例如,HTTP或gRPC之类的TCP客户机-服务器)

 类似资料:
  • 我正在使用EventBus创建一个Android应用程序,用于向其他类发布异步广播,但在执行过程中遇到了一个错误。 LogCat显示以下内容: 为什么会这样?我做错什么了吗?

  • 我需要在发布/订阅模式下调用Kafka消费者1000次。据我所知,为了让kafka在发布/订阅模式下工作,我需要给每个消费者一个新的groupId(props . put(" group . id ",String.valueOf(Instant.now())。toEpochMilli()));).但是当我这样做的时候,如果两个消费线程同时访问消费线程,就会出现问题。这个问题应该怎么解决?

  • Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。 Redis 客户端可以订阅任意数量的频道。 下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2、client5 和 client1 之间的关系: 当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个

  • 在我的应用程序中(它正在使用Topic1、Topic2和Topic3),我还不断看到与其他主题相关的警告。 该消息通过以下Kafka代码打印:https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/clients/networkclient.java 这是意料之中的吗?为什么这些警告消息会发

  • 我正在我们的开发服务器中设置一个新的LiferayV6.2。我们没有完全访问数据库的权限,所以我们要求数据库管理员为我们创建新的模式。她说,由于空间限制,她不能再创作一个新的。我们有一个现有的模式,用于我们的旧liferay门户版本(不再使用),她建议我们可以使用它(虽然她不想放弃它),并为我们的新版本创建公共同义词。现在我们有两个liferay表实例 如果我使用这个公共同义词查询 我正在得到我的

  • 实现代码 namespace App; use EasySwoole\Core\Swoole\Process\AbstractProcess; use Swoole\Process; class Subscribe extends AbstractProcess { public function run(Process $process) { // TODO: I