Comprensión kafka arroyos cedente partición

Kambo:

Tengo dos temas, uno con 3 particiones y otra con 48.

Al principio he usado el cedente por defecto, pero tengo algunos problemas cuando un consumidor (vaina en kubernetes) se estrelló.

Lo que ocurrió fue que cuando la vaina se acercó de nuevo se reasignó la partición del tema con 3 particiones y 0 del tema con 48.

Las dos vainas que no se estrelló dieron asignado 16 y 32 particiones del tema con 48 particiones.

He arreglado esto mediante el uso de un cedente partición de round robin, pero ahora no me siento seguro en cómo se distribuyen las particiones ya que estoy usando kstream-kstream Uniones y para eso tenemos que garantizar que los consumidores están asignados a la misma partición para todo el consumidor por ejemplo C1: (t1: p0, t2: p0) C2 (t1: p1, t2: p1) etc ..

Una cosa que pensé fue que podía cambio de claves de los próximos eventos en lo que se particionar y entonces yo podría ser capaz de garantizar esto?

O tal vez no entiendo cómo el trabajo de partición por defecto .. im confundido

Bruno Cadonna:

Kafka corrientes no permite utilizar un cedente de particiones personalizada. Si configura uno usted mismo, se sobrescribe con el StreamsPartitionAssignor[1]. Esto es necesario para asegurar que - si es posible - las particiones son re-asignados a los mismos consumidores (también conocido como la pegajosidad) durante el reequilibrio. La pegajosidad es importante para Kafka secuencias de vídeo para poder reutilizar las tiendas de los estados en el lado del consumidor tanto como sea posible. Si una partición no se reasigna a la misma de los consumidores, tiendas estatales utilizados dentro de esta necesidad de los consumidores a volver a crear desde cero después de reequilibrio.

[1] https://github.com/apache/kafka/blob/trunk/streams/src/main/java/org/apache/kafka/streams/StreamsConfig.java#L989

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=224467&siteId=1
Recomendado
Clasificación