enviar un mensaje a un tema basado en clave de mensaje corrientes kafka

Incluido:

Quiero ser capaz de enviar todos los registros en un Kafkastream a un tema diferente en función de la clave de la clave de mensaje. Ex. Una secuencia en Kafka contiene el nombre como la clave y el registro como valor. Quiero abanico estos registros al tema diferente basada en la clave del registro

Datos: (Jhon -> {jhonsRecord}), (sean -> {seansRecord}), (mary -> {marysRecord}), (Jhon -> {} jhonsRecord2), espera

  • tema1: Nombre: Jhon -> (Jhon -> {jhonsRecord}), (Jhon -> {} jhonsRecord2)
  • Tema2: Sean-> (sean -> {} seansRecord)
  • topic3: maria -> (mary -> {} marysRecord)

A continuación se muestra la forma en que estoy haciendo esto ahora, pero ya que la lista de nombres es notoria esto es lento. Además, incluso si existen registros unos pocos nombres, tengo que recorrer toda la lista Para sugerir una solución

    for( String name : names )
    {
        recordsByName.filterNot(( k, v ) -> k.equalsIgnoreCase(name)).to(name);
    } 
Bartosz Wardziński:

Creo que se debe utilizar KStream::to(final TopicNameExtractor<K, V> topicExtractor)la función. Se le da capacidad de calcular nombre del tema para cada mensaje.

Código de muestra:

final KStream<String, String> stream = ???;
stream.to((key, value, recordContext) -> key);

Supongo que te gusta

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