跳转到主要内容

链接

  • 第1部分:介绍和架构
  • 第2部分:建立Kubernetes和Kafka<--本文
  • 第3部分:设置Vault
  • 第4部分:建立微型服务
  • 第5部分:部署和测试


要求

目录结构

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

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

软件

这些是入门所需的软件

  • Java语言
  • OpenSSL

设置Kubernetes和Helm

在本教程中,我们将使用Docker Desktop及其Kubernetes引擎。

  • 按照本教程中的步骤[Install Docker Desktop]:

      https://github.com/azrulhasni/Ebanking-JHipster-Keycloak-Nginx-K8#install-docker-desktop

  • 同时安装Helm

       https://github.com/azrulhasni/Ebanking-JHipster-Keycloak-Nginx-K8#installing-helm

设置Kafka

我们将在Kubernetes集群中运行Kafka。我们将为此使用赫尔姆。

使用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吊舱处于运行状态

No alt text provided for this image

在Kubernetes暴漏Kafka让我们管理

卡夫卡现在正在成功运行。为了让我们管理它(例如创建新的主题),我们需要将它暂时暴露给外部世界

运行下面的命令。这将使Kafka在端口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

然后将浏览器指向http://localhost:9000 . 您应该看到下面的页面:

No alt text provided for this image

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

No alt text provided for this image

您将在下面的页面中创建主题。

No alt text provided for this image

创建2个主题:存款借记响应和存款借记请求

No alt text provided for this image

返回运行端口转发命令的命令行控制台,在那里按Ctrl+C关闭外部连接。或者,您只需拖拽命令行控制台窗口。

祝贺我们成功地运行了Kafka,并在其中创建了2个主题。

文章链接

标签