Giter Club home page Giter Club logo

custom-messaging's Introduction

Mensageria Customizada

Está lib tem como objetivo facilitar o processo de implementação de mensageria aos projetos legados.

Para adicionar mensageria ao seu projeto, basta adicionar a lib:

    <dependency>
        <groupId>com.nortetec</groupId>
        <artifactId>custom-messaging</artifactId>
        <version>1.0.0</version>
    </dependency>

Depois, deve-se encontrar a classe de configuração da aplicação (ConfiguracaoAplicacao.java) que se encontra no modulo api das aplicações, e adicione os seguintes codigos:

Para Kafka: @EnableCustomKafka Para RabbitMq: @EnableCustomRabbitMQ

Configuração

Para que as aplicações possam consumir e produzir eventos, se faz necessario a criacao de um arquivo de configuração chamado mensageria.properties.

Com esse arquivo é possivel configurar as seguintes propriedades:

  1. Para o utilização do KAFKA
mensageria.kafka.host=<HOST>
mensageria.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer
mensageria.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer

mensageria.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
mensageria.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer
  1. Para utilização do RABBITMQ
mensageria.rabbitmq.host=<HOST>
mensageria.rabbitmq.port=<PORTA>
mensageria.rabbitmq.usuario=<USUARIO_APLICACAO>
mensageria.rabbitmq.senha=<SENHA>
mensageria.rabbitmq.projetoTag=<NOME_PROJETO_MAVEN>

Logs

Para ignorar os logs gerados no weblogic, adicione no arquivo de logs os comandos abaixo:

log4j.logger.org.springframework.amqp.rabbit.listener=off
log4j.logger.org.springframework.kafka=off
log4j.logger.org.apache.kafka.clients=off

RabbitMQ

Para criação de um consumidor RabbitMQ basta usar o modelo abaixo:

    @RabbitListener(queues = "<NOME-DA-FILA>")
    public void consumeMessage(@Payload Message mensagem) {
        logger.info("Payload recebido: {} ", new String(mensagem.getBody()));
    }

Para criação de um produtor RabbitMQ basta usar o modelo abaixo:

    @Autowired
    private RabbitTemplate rabbitTemplate;

    public void send(String order) {
        rabbitTemplate.convertAndSend(<NOME-DA-FILA>, order);
    }

Kafka

Para criação de um consumidor Kafka basta usar o modelo abaixo:


    @KafkaListener(topics = "<NOME-DO-TOPICO>", groupId = "<NOME-DA-APLICACAO>")
    public void receiveMessage(ConsumerRecord<String, String> payload) {
        logger.info("Tópico: {}", payload.topic());
        logger.info("key: {}", payload.key());
        logger.info("Headers: {}", payload.headers());
        logger.info("Partion: {}", payload.partition());
        logger.info("Order: {}", payload.value());
        logger.info("Aplicacao: {}", getProjeto());
    }

Para criação de um produtor Kafka basta usar o modelo abaixo:

    @Autowired
    private KafkaTemplate<String, String> kafkaTemplate;

    public void send(String evento){
        kafkaTemplate.send("<NOME-DO-TOPICO>", evento);
    }

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.