Implantando o Kafka no Kubernetes
Aqui você aprenderá como confgigurar e executar o Apache Kafka no Kubernetes, iremos abordar sobre as práticas recomendadas e os passos a seguir para o bom funcionamento do Apache Kafka.
Kafka
Kafka é uma plataforma de streaming de eventos de código aberto desenvolvida pela primeira vez pelo LinkedIn e depois doada para a fundação de software Apache.
Kafka é escrito em Java e Scala. O Apache Kafka visa fornecer ao usuário uma plataforma unificada, de alta latência e alto rendimento para lidar com dados em tempo real.
Enquanto falamos sobre a execução do Kafka no Kubernetes - Kafka é executado como um cluster de nós chamados Kafka Brokers.
O Kafka foi desenvolvido primeiro como uma fila de mensagens e funciona como um modelo pub-sub. É usado como uma fila de mensagens popular para sistemas distribuídos e é comumente usado para transmitir dados em casos de uso da Internet das Coisas.
Como o Apache kafka trabalha
- Os produtores criam mensagens e as publicam em tópicos.
- Kafka categoriza as mensagens em tópicos e as armazena para que sejam imutáveis.
- Os consumidores se inscrevem em um tópico específico e absorvem as mensagens fornecidas pelos produtores.
Zookeeper no kafka
O Zookepeer é um componente muito importante do Apache Kafaka com ele todo Broker existente no cluster é monitorado e mapeado pelo Zookeeper, ele funciona como um sistema centralizado para manter o controle deo status de cada broker e cluster ele também gerencia o controle de tópicos as partiçoes entre outros. Podemos ter um Zookepper central como também podemos usar um Zookeeper para cada cluster ou broker e fazer eles se comunicarem garantindo um Failover caso um cluster venha a falhar.
Kafka no Kubernetes
A arquitetura do Kafka no kubernetes é bem organizada, isso permite organizar e simplificar operações como atualizações, rinicialização e monitoramentos que trabalham em conjunto com o o Kubernetes.
kind: Deployment
apiVersion: apps/v1
metadata:
name: zookeeper-deploy
namespace: kafka-ns
spec:
replicas: 2
selector:
matchLabels:
app: zookeeper-1
template:
metadata:
labels:
app: zookeeper-1
spec:
containers:
- name: zoo1
image: digitalwonderland/zookeeper
ports:
- containerPort: 2181
env:
- name: ZOOKEEPER_ID
value: "1"
- name: ZOOKEEPER_SERVER_1
value: zoo1
Soluções e ferramentas para o ciclo de desenvolvimento de softwares.