es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Leer encabezados de mensajes AMQP en Spring Cloud Stream

Hice una aplicación de Spring Batch que produce mensajes AMQP (RabbitMQ) que consisten en una lista de objetos JSON. Los mensajes tienen encabezados con metadatos. La aplicación de Spring Cloud Stream está consumiendo los mensajes y utilicé un enfoque funcional. ¿Cómo puedo acceder a los encabezados?
¿Es una mala práctica utilizar los encabezados de los mensajes para algo que no sea el enrutamiento?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para acceder a las cabeceras de un mensaje consumido por una aplicación de Spring Cloud Stream, puedes definir una función que tome un parámetro Message y lo utilice para acceder a las cabeceras. Aquí tienes un ejemplo:

    @Bean
    public Function<><><myobject>>, Void> consume() {
      return message -> {
        Map<string, object=""> headers = message.getHeaders();
        // Accede a las cabeceras de la forma que necesites
        return null;
      };
    }
    

    En cuanto a la segunda parte de la pregunta, no necesariamente es un enfoque incorrecto utilizar las cabeceras de mensaje para algo más que el enrutamiento. Las cabeceras se pueden utilizar para diversos propósitos, como la autenticación, el filtrado de mensajes y los metadatos. Sin embargo, es importante asegurarse de que las cabeceras se utilicen de manera apropiada y no abusiva, lo cual puede llevar a complejidad y posibles problemas. Siempre es una buena práctica documentar claramente el uso de las cabeceras en tu sistema.</string,>

Comments are closed.