duplicates - Apache Pulsar 中的重复数据删除如何工作?

标签 duplicates amazon-sqs apache-pulsar

我正在尝试使用 Apache Pulsar 的重复数据删除功能。

brokerDeduplicationEnabled=true 在standalone.conf 文件中设置,但是 当我多次从生产者发送相同的消息时,我在消费者端收到所有消息,这是预期的行为吗?

重复数据删除不是像 AWS SQS 中那样意味着基于内容的重复数据删除吗?

这是我的制作人代码供引用。

import pulsar
import json 
   
client = pulsar.Client('pulsar://localhost:6650')    
producer = client.create_producer(
    'persistent://public/default/my-topic',
    send_timeout_millis=0,
    producer_name="producer-1")

data = {'key1': 0, 'key2' : 1}

for i in range(10):
    encoded_data = json.dumps(data).encode('utf-8') 
    producer.send(encoded_data)

client.close()

最佳答案

在 Pulsar 中,重复数据删除对消息内容不起作用。它适用于个人消息。目的不是删除重复内容,而是确保单个消息不能发布多次。

当您发送消息时,Pulsar 会为其分配一个唯一标识符。重复数据删除可确保在故障情况下,同一条消息不会多次存储在(或写入)Pulsar 中。它通过将标识符与已存储的标识符列表进行比较来实现这一点。如果消息的标识符已被存储,Pulsar 会忽略它。这样,Pulsar 只会存储该消息一次。这是 Pulsar 机制的一部分,用于保证消息只会发送一次。

更多详情,请参阅 PIP 6: Guaranteed Message Deduplication .

关于duplicates - Apache Pulsar 中的重复数据删除如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68837887/

相关文章:

MySQL 查询删除重复行

mysql - 复制所有行并更改但更改 store_id

java - 如何通过两个帐户使用 AmazonSQS 监听器

apache-kafka - pulsar和kafka在消费方面有什么区别?

python - Pandas 索引系列中的重复

c# - 如何获得 ToDictionary() 失败的重复键?

aws-lambda - 尽管 SQS 消息已由 lambda 处理,但它仍在传输中

node.js - 带有 aws-sdk receiveMessage 的 Amazon SQS

apache-pulsar - Apache Pulsar Rar 文件

ssl - 如何引用名称中带有哈希后缀的证书管理器生成的 secret ?