Kafka no Spring Boot

O Apache Kafka é uma plataforma de streaming distribuído excelente para a troca de mensagem em alta escala, como por exemplo, em arquitetura orientada em eventos, um pouco mais sobre Kafka pode ser visto nesse outro post: Kafka. Como na maioria das tecnologias, também há dependências para facilitar a utilização do Kafka em aplicações Spring … Continue lendo Kafka no Spring Boot

Kafka

O Apache Kafka é uma plataforma de streaming distribuído que possui basicamente três objetivos: Publish e subscribe em fluxos de registros, armazenamento de fluxo de registros e processamento de fluxos conforme eles ocorrem. Com isso, o Kafka é uma boa alternativa de plataforma para uma arquitetura orientada a eventos. No Kafka, as mensagem são publicadas … Continue lendo Kafka

Cache distribuído com Redis no Spring Boot

Cache é uma das abordagens para otimizar acesso à dados dos sistemas, onde evitamos requisições repetitivas nas fontes originais dos dados, que geralmente são grandes estruturas, complexas e nem sempre performáticas, assim com cache, passamos a consultar locais mais otimizados, que provêm acessos rápidos através de chaves. Há diversas tecnologias de cache para utilizarmos nas … Continue lendo Cache distribuído com Redis no Spring Boot

Tracing distribuído com Spring Cloud Sleuth e Zipkin

A partir do momento que iniciamos a utilização de aplicações distribuídas em produção, como por exemplo em soluções com microserviços, alguns desafios começam a surgir, um deles é como coletar informações das comunicações entre as aplicações distribuídas, onde suas comunicações são remotas. As comunicações entre as aplicações podem ser feitas de diferentes formas: REST, SOAP, … Continue lendo Tracing distribuído com Spring Cloud Sleuth e Zipkin

Configurações distribuídas com Spring Cloud Config

Configurações de projetos se tornaram mais fáceis com o Spring Boot, que com o conceito de auto configuração ficam menos verbosas e centralizadas nos application.properties. Porém, como são configurações em arquivos isso acaba sendo um pouco repetitivo quando utilizadas em diversas aplicações e diversos ambientes, como na arquiteturas de microsserviços onde há várias aplicações, consequentemente … Continue lendo Configurações distribuídas com Spring Cloud Config

Clients dinâmicos com Feign e Eureka

O Feign é uma boa alternativa que o Netflix o criou com o propósito de implementar clients HTTPs em Java de forma fácil. Feign proporciona implementações com base em anotações, assim os mapeamentos para os clients HTTP são podem ser desenvolvidos baseados em interfaces, como demonstrado no exemplo abaixo: Feign.builder(): Instância o client do Feign … Continue lendo Clients dinâmicos com Feign e Eureka

Criando proxy de APIs com Spring cloud, Zuul e Eureka

A partir do momento que passamos a usar uma abordagem de microserviços ou da separação do código monolito, começamos a enfrentar alguns desafios por lidarmos com diversas aplicações, um deles é trabalhar com as diferentes URLs das aplicações distribuídas, onde conforme a necessidade deve ser direcionado para aplicação correta. Uma das formas de minimizar esse … Continue lendo Criando proxy de APIs com Spring cloud, Zuul e Eureka