跳转到主要内容
Chinese, Simplified

链接

  • 第 1 部分:简介和架构
  • 第 2 部分:设置 Kubernetes 和 Kafka <--本文
  • 第 3 部分:设置保险柜
  • 第 4 部分:构建微服务
  • 第 5 部分:部署和测试


要求


目录结构


我们将使用的目录结构如下:

  • $PROJECTS
  • —|—DepositAccount
  • —|—GatewayKafka
  • —|—Transaction
  • —|—Registry
  • —|—k8s
  • —|—kafkatools


软件


这些是入门所需的软件

  • Java
  • OpenSSL


设置 Kubernetes 和 Helm

 


设置Kafka

 

  • 我们将在 Kubernetes 集群中运行 Kafka。我们将为此使用 Helm。

使用 Helm 安装 Kafka

 

  • 首先,运行下面的两个命令行。这将使用 Helm 将 Kafka 安装到您的 Kubernetes 集群
> helm repo add bitnami https://charts.bitnami.com/bitnami

> helm install kafka bitnami/kafka
  • 完成后,您将收到以下消息:
NAME: kafka
LAST DEPLOYED: Mon Sep 14 09:08:13 2020
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
** Please be patient while the chart is being deployed **
Kafka can be accessed by consumers via port 9092 on the following DNS name from within your cluster:
    kafka.default.svc.cluster.local
Each Kafka broker can be accessed by producers via port 9092 on the following DNS name(s) from within your cluster:
    kafka-0.kafka-headless.default.svc.cluster.local:9092
To create a pod that you can use as a Kafka client run the following commands:
    kubectl run kafka-client --restart='Never' --image docker.io/bitnami/kafka:2.6.0-debian-10-r18 --namespace default --command -- sleep infinity
    kubectl exec --tty -i kafka-client --namespace default -- bash
    PRODUCER:
        kafka-console-producer.sh \
            --broker-list kafka-0.kafka-headless.default.svc.cluster.local:9092 \
            --topic test
    CONSUMER:
        kafka-console-consumer.sh \
            --bootstrap-server kafka.default.svc.cluster.local:9092 \
            --topic test \
            --from-beginning

 

  • 要仔细检查,请运行:
> kubectl get pods

 

  • 你应该得到下面的结果。我们应该看到处于运行状态的 Kafka 和 ZooKeeper pod

No alt text provided for this image


在 Kubernetes 中暴露 Kafka 供我们管理

 

  • Kafka 现在已成功运行。为了让我们管理它(例如创建新主题),我们需要将它暂时暴露给外界
  • 运行以下命令。这会将 Kafka 暴露给 localhost 的 9092 端口。
> kubectl port-forward kafka-0 9092:9092


安装 Kafdrop

 

  • Kafdrop 是 Kafka 的管理工具。我们可以用它来管理我们的 Kafka 集群
  • https://github.com/obsidiandynamics/kafdrop/releases 下载 jar 文件并将其放在 $PROJECTS/KafkaTools 文件夹中
  • 运行以下命令。确保将 <version> 替换为您下载的 Kafdrop 版本号。请注意,属性 —kafka.brokerConnect 指向我们在上一段中公开的端口 (localhost:9092):
> java -jar kafdrop-<version>.jar --kafka.brokerConnect=localhost:9092

 

No alt text provided for this image

  • 导航到页面底部并找到主题部分。单击 (+) 按钮

No alt text provided for this image

  • 您将获得下面的页面,您可以在其中创建主题。

No alt text provided for this image

  • 创建 2 个主题:deposit-debit-response 和 deposit-debit-request

No alt text provided for this image

  • 返回运行 port-forward 命令的命令行控制台,在其中按 Ctrl+C 以关闭该外部连接。或者,您可以关闭命令行控制台窗口。
  • 恭喜!我们已经成功运行 Kafka 并在其中创建了 2 个主题。
原文地址
https://www.linkedin.com/pulse/secure-inter-micro-service-communication-spring-boot-kafka-madisa-1c/
本文地址
Article
知识星球
 
微信公众号
 
视频号