Componente de transporte do remetente Kafka

Para enviar mensagens a um tópico Kafka, você pode configurar o modo de remetente do componente de transporte Kafka que está disponível na estrutura de definição de serviço do Sterling™ Order Management System e pode ser acessado na modelagem de processos no Gerenciador de aplicativos.

Observação: para publicar mensagens no formato JSON usando um remetente Kafka, configure a propriedade yfs xmljson.usejson.out.forflows com a lista de serviços que exigem saída JSON. Quando um remetente do Kafka é incluído no fluxo de serviço, as mensagens enviadas para o tópico Kafka estão no formato JSON.
Figura 1. Tela de definição de serviço com o tipo de transporte Kafka
Tela de definição de serviço com o tipo de transporte Kafka

Você pode usar o componente de transporte do remetente Kafka em serviços síncronos e assíncronos para enviar mensagens do Sterling Order Management System para o Kafka.

Figura 2 Tela de detalhes do remetente Kafka
Você pode usar o componente de transporte do remetente Kafka em serviços síncronos e assíncronos para enviar mensagens do Sterling Order Management System para o Kafka.
No componente de transporte do remetente Kafka, estão disponíveis os seguintes campos na guia General (Geral ):
Campos Descrição
Tópico Um campo obrigatório que especifica para onde as mensagens Kafka são enviadas.
ID do grupo de configuração Um campo opcional que lista o identificador que usa o conjunto de propriedades de passagem para definições de configuração Kafka. Se você não especificar nenhum valor, será usada a ID do grupo de configuração global. Se a ID do grupo de configuração global não for especificada, Kafka usará o valor padrão para cada configuração.
ID da partição Um campo opcional. Defina o ID da chave de partição. Se você não especificar o ID, o Kafka Producer determinará o ID da partição.
Chave da partição Um campo opcional. Você pode especificar uma cadeia de caracteres estática ou uma expressão XPath válida que seja resolvida para um valor dentro da mensagem, como um ID de cliente. Ele pode ser usado como chave de partição. Se o XPath não resultar em um valor válido, o produtor do Kafka atribuirá uma chave de partição nula, e a lógica padrão de particionamento fixo do Kafka será aplicada.

Para solucionar problemas de particionamento incorreto, você pode ativar os logs de depuração do Kafka para verificar a resolução XPath e atualizá-la se ela não extrair a chave de partição correta.

Aguardar o envio Por padrão, essa caixa de seleção está marcada, e Kafka envia as mensagens de forma síncrona até que elas sejam gravadas no tópico de destino. Se a caixa de seleção estiver desmarcada, Kafka enviará as mensagens de forma assíncrona.
A confirmação desta mensagem depende da transação pai Marque a caixa de seleção Commit of this message depends on parent transaction para usar o remetente transacional Kafka. Por padrão, essa caixa de seleção não está marcada, o que indica que a confirmação da mensagem enviada ao Kafka não faz parte da transação principal.

Use a guia ConfiguraçõesKafka para substituir as propriedades de configuração de passagem no nível de serviço específico.

Figura 3. Configurações do Kafka para o Kafka Producer
Use a guia Configurações Kafka para substituir as propriedades de configuração de passagem no nível de serviço específico.

Kafka também é compatível com os cabeçalhos Kafka. O componente de transporte Kafka permite que os cabeçalhos Kafka sejam definidos no nível de serviço na guia Kafka Headers. Os cabeçalhos específicos do fluxo ou do serviço podem ser especificados como pares de valores-chave. Quando a mensagem é enviada, os pares de valores-chave são enviados para o produtor Kafka como parte do ProducerRecord. Entretanto, durante a criação da mensagem, os cabeçalhos Kafka não podem ser passados dinamicamente. Os cabeçalhos Kafka são específicos do serviço, portanto, você deve especificar os cabeçalhos Kafka no nível do serviço.

Figura 4. Cabeçalhos Kafka para o Kafka Producer
Kafka também é compatível com os cabeçalhos Kafka. O componente de transporte Kafka permite que os cabeçalhos Kafka sejam definidos no nível de serviço na guia Kafka Headers. Os cabeçalhos específicos do fluxo ou do serviço podem ser especificados como pares de valores-chave. Quando a mensagem é enviada, os pares de valores-chave são enviados ao produtor Kafka como parte do ProducerRecord. Entretanto, durante a criação da mensagem, os cabeçalhos Kafka não podem ser passados dinamicamente. Os cabeçalhos Kafka são específicos do serviço, portanto, você deve especificar os cabeçalhos Kafka no nível do serviço.