Entenda mais sobre Apache Pulsar - Full Cycle FullCycle

Voltar

Wesley Willians

Entenda mais sobre Apache Pulsar

5 min de leitura

Atualmente podemos encontrar diversas soluções no mercado que disponibilizam serviços de streaming de dados, como o Apache Kafka, AWS Kinesis e a última versão do RabbitMQ. Essas tecnologias nos ajudam a armazenar dados de alta volumetria e ainda prepará-los para serem distribuídos entre outros sistemas.

Mas, mesmo com essa variedade de message brokers que garantem a comunicação entre os nossos sistemas, é natural procurarmos alternativas mais eficazes, que façam a diferença no throughput das aplicações.

Então temos o Apache Pulsar.

O Apache Pulsar é uma solução open source e na sua versão 2.9 ela já concorre com os serviços do Apache Kafka. Seguindo basicamente o mesmo princípio, essa tecnologia também trabalha com producers, consumers e topics por onde os dados são transmitidos.

E, além da parte de mensageria, também conta com recursos que promovem um grande diferencial frente à rotina de grandes empresas que precisam de soluções e possuem diversas áreas, times e outras verticais nesse contexto.

No Apache Kafka geralmente criamos tópicos para produção e consumo, mas eventualmente precisamos separar os contextos desses tópicos para conseguirmos gerenciá-los. Ele consegue trabalhar de forma multi-tenancy, viabilizando a separação de contextos totalmente diferentes e ainda lida com uma enorme quantidade de tópicos num armazenamento praticamente ilimitado.

Assim como o Apache Kafka, o Pulsar também trabalha de forma distribuída e também possui uma ferramenta chamada BookKeeper para armazenamento de dados. E diretamente dos books, o Pulsar disponibiliza facilmente as informações que precisamos.

Eventualmente podemos armazenar os books numa S3, por exemplo, para mantermos a retenção de dados ilimitada e os dados mais quentes são captados pelos próprios brokers do Pulsar. Pode haver uma latência um pouco maior caso o dado seja muito antigo, mas também é possível pegar essa informação diretamente do S3.

Essa é uma tecnologia que conta com uma alta velocidade, mesmo funcionando num formato de logs, assim como o Apache Kafka, mas a gravação é muito rápida em disco e a leitura de um órgão é muito simples e estruturada.

O padrão Tail do Pulsar também mantém as suas últimas informações num cache em memória, fazendo com que a latência e o response também sejam muito mais rápidos nesse quesito.

Utilizar recursos como a geo-replication nos permitem replicar geograficamente os dados para trabalhar de forma distribuída. E além disso, ele também disponibiliza uma API Rest para fazer a chamada e definir que as informações caiam diretamente num tópico.

Podemos citar outras vantagens como: Load Balancer e API Rest; a garantia da ordem de entrega, mantendo o curso de quem consome, como em outras tecnologias. E assim como o KsqlDB, também é possível rodar queries em relação a todos os dados.

Essa é uma tecnologia que funciona tanto através do Kubernetes, quanto num formato bare metal ou em máquinas virtuais. Você também pode utilizar o Pulsar nas principais linguagens do mercado, como: Java, Go, Python, C++, Node.js, Websockets e Lib para C#.

Num estudo de caso podemos observar que o Mercado Livre possui uma tecnologia chamada BigQ, que funciona como um proxy, uma camada de abstração que nos permite trabalhar diretamente com o Apache Pulsar e também com o Google Pub/Sub. Assista em nosso canal clicando aqui.

E como o Mercado Livre trafega milhões de mensagens diariamente, você pode tomar isso como um exemplo de que essa ferramenta já é bastante consolidada.

Para concluir, essa é definitivamente uma tecnologia promissora que surgiu para inovar as estruturas dos message brokers e sistemas de stream, além ser uma ferramenta muito adequada para quem pretende se atualizar nos sistemas de mensageria.

Se você curtiu esse conteúdo e quer aprender mais sobre Apache Pulsar, clique aqui, solicite contato e nós te ajudamos.

Confira também: o que você precisa saber para ser um Full Stack.