- 第 1 部分:简介和架构
- 第 2 部分:设置 Kubernetes 和 Kafka <--本文
- 第 3 部分:设置保险柜
- 第 4 部分:构建微服务
- 第 5 部分:部署和测试
要求
目录结构
我们将使用的目录结构如下:
- $PROJECTS
- —|—DepositAccount
- —|—GatewayKafka
- —|—Transaction
- —|—Registry
- —|—k8s
- —|—kafkatools
软件
这些是入门所需的软件
- Java
- OpenSSL
设置 Kubernetes 和 Helm
- 在本教程中,我们将使用 Docker Desktop 及其 Kubernetes 引擎。
- 按照本教程 [安装 Docker 桌面] 中的步骤操作:https://github.com/azrulhasni/Ebanking-JHipster-Keycloak-Nginx-K8#insta…
- 同时安装 Helmhttps://github.com/azrulhasni/Ebanking-JHipster-Keycloak-Nginx-K8#insta…
设置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
在 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 文件夹中
- 运行以下命令。确保将 替换为您下载的 Kafdrop 版本号。请注意,属性 —kafka.brokerConnect 指向我们在上一段中公开的端口 (localhost:9092):
> java -jar kafdrop-.jar --kafka.brokerConnect=localhost:9092
- 然后将浏览器指向 http://localhost:9000 。您应该看到以下页面:
- 导航到页面底部并找到主题部分。单击 (+) 按钮
- 您将获得下面的页面,您可以在其中创建主题。
- 创建 2 个主题:deposit-debit-response 和 deposit-debit-request
- 返回运行 port-forward 命令的命令行控制台,在其中按 Ctrl+C 以关闭该外部连接。或者,您可以关闭命令行控制台窗口。
- 恭喜!我们已经成功运行 Kafka 并在其中创建了 2 个主题。