apache / apache/pulsar-client-cpp
[pulsar-client-cpp] Partition key from producer does arrive in broker
- Lenguaje dominante
- C++
- Estrellas
- 71
- Forks
- 90
- Merge medio
- 2 h 33 min
- PR fusionados (30 d)
- 3
Descripción
**Describe the bug**
When using the Java client producer, the setting of Key in MessageBuilder correctly coveys this metadata to the broker. C++ client consumers can then successfully use _Key_Shared_ subscription on this topic and we're seeing the expected keys-based consumption behavior.
However, when we use a C++ client producer, we do not get a "shared key" consumption behavior over the subscribed consumers.
**To Reproduce**
Steps to reproduce the behavior:
1. Initiate a Java client producer. Add a Key to the MessageBuidler.
2. Send messages using the MessageBuilder
3. Initiate two C++ consumers using the "Key_Shared" subscription
4. See key-based distributed messages over the consumers.
5. Now stop the Java client producer
6. Start a CPP client producer that sets the same metadata
7. Now only one of the C++ client consumers retrieves all messages
**Expected behavior**
We'd expect to see the same "key-shared" message distribution over the consumers with a C++ client producer as with its Java equivalent.
**Additional context**
We suspect a difference in the protobuf schema between the Java and C++ client producers for setting the partition or ordering key and conveying this metadata to the broker. It seems that the broker does not receive the message metadata from the C++ client producer correctly.
NB: We are using the same version of C++ client and broker (both from Pulsar v2.5.0).
Guía de contribución
Línea de trabajo
Comience con el MessageBuilder del productor de C++ y compare cómo se serializan sus metadatos de key u ordering-key con el comportamiento del productor de Java descrito en los pasos de reproducción. Reproduzca el problema con dos consumidores C++ Key_Shared y ambos tipos de productor utilizando Pulsar 2.5.0. Se considera terminado cuando el productor de C++ produce la misma distribución basada en claves entre los consumidores que el productor de Java.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- cpp, java
- Área
- distributed-systems
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100