web-dev-qa-db-fra.com

Kafka définir le type de compression au producteur vs sujet

Quelle est la différence entre les façons suivantes d'activer la compression dans kafka:

Approche 1: créez un sujet à l'aide de la commande:

bin/kafka-topics.sh --create --zookeeper localhost:2181 --config compression.type=gzip --topic test

Approche 2: définissez la propriété compression.type = gzip dans Kafka Producer Client API.

J'obtiens une meilleure compression et un débit plus élevé lorsque j'utilise l'approche 1.

Si j'utilise l'approche 1, cela signifie-t-il que la compression se produit à la fin du courtier alors que dans l'approche 2, les messages sont compressés à la fin du producteur puis envoyés au courtier?

11
shants

Si j'utilise l'approche 1, cela signifie-t-il que la compression se produit du côté du courtier?

Ça dépend. Si le producteur ne définit pas de compression.type ou en définit un autre, le message sera compressé à la fin du courtier. Cependant, si le producteur définit également compression.type à gzip, pas besoin de compresser à nouveau à la fin du courtier. En fait, il existe d'autres conditions strictes qui doivent être remplies pour éviter la compression, bien que cela dépasse un peu la portée.

dans l'approche 2, les messages sont compressés du côté du producteur, puis envoyés au courtier?

Oui, les enregistrements seront compressés avant d'être envoyés au courtier si le producteur définit sa configuration compression.type.

12
amethystic