【微服务安全】与 Spring Boot、Kafka、Vault 和 Kubernetes 通信——第 2 部分:设置 Kubernetes 和 Kafka

简介: 【微服务安全】与 Spring Boot、Kafka、Vault 和 Kubernetes 通信——第 2 部分:设置 Kubernetes 和 Kafka
  • 第 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

在 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

 

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

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

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

  • 返回运行 port-forward 命令的命令行控制台,在其中按 Ctrl+C 以关闭该外部连接。或者,您可以关闭命令行控制台窗口。
  • 恭喜!我们已经成功运行 Kafka 并在其中创建了 2 个主题。

Tags

本文:https://architect.pub/communication-spring-boot-kafka-vault-and-kubernetes-part-2-setting-kubernetes-and-kafka

相关文章
|
7月前
|
监控 Kubernetes Java
使用 New Relic APM 和 Kubernetes Metrics 监控 EKS 上的 Java 微服务
在阿里云AKS上运行Java微服务常遇性能瓶颈与OOMKilled等问题。本文教你通过New Relic实现集群与JVM双层监控,集成Helm部署、JVM代理注入、GC调优及告警仪表盘,打通从节点资源到应用内存的全链路观测,提升排障效率,保障服务稳定。
524 115
|
7月前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
2189 10
消息中间件 Java Kafka
558 0
|
7月前
|
消息中间件 Java Kafka
消息队列比较:Spring 微服务中的 Kafka 与 RabbitMQ
本文深入解析了 Kafka 和 RabbitMQ 两大主流消息队列在 Spring 微服务中的应用与对比。内容涵盖消息队列的基本原理、Kafka 与 RabbitMQ 的核心概念、各自优势及典型用例,并结合 Spring 生态的集成方式,帮助开发者根据实际需求选择合适的消息中间件,提升系统解耦、可扩展性与可靠性。
488 1
消息队列比较:Spring 微服务中的 Kafka 与 RabbitMQ
|
8月前
|
JSON 自然语言处理 API
gRPC凭什么成为微服务通信首选?深度解析RPC进化史
本文深入解析了分布式系统中服务通信的核心机制,重点介绍了 RPC 与 gRPC 的原理、优势及使用场景,并详解 gRPC 所依赖的序列化协议 Protocol Buffers(Protobuf)。内容涵盖 RPC 概念、gRPC 特性、Protobuf 语法及服务定义,适合微服务架构设计与维护人员阅读,助你构建高性能、低耦合的服务通信体系。
957 73
gRPC凭什么成为微服务通信首选?深度解析RPC进化史
|
12月前
|
消息中间件 Java Kafka
Spring Boot整合kafka
本文简要记录了Spring Boot与Kafka的整合过程。首先通过Docker搭建Kafka环境,包括Zookeeper和Kafka服务的配置文件。接着引入Spring Kafka依赖,并在`application.properties`中配置生产者和消费者参数。随后创建Kafka配置类,定义Topic及重试机制。最后实现生产者发送消息和消费者监听消息的功能,支持手动ACK确认。此方案适用于快速构建基于Spring Boot的Kafka消息系统。
1812 7
|
消息中间件 Java Kafka
SpringBoot使用Kafka生产者、消费者
SpringBoot使用Kafka生产者、消费者
615 10
|
Dubbo 应用服务中间件 Apache
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
220 0
|
druid Java 数据库连接
深入学习SpringBoot微服务框架
深入学习SpringBoot微服务框架
深入学习SpringBoot微服务框架
|
6月前
|
JavaScript 安全 Java
基于springboot的大学生兼职系统
本课题针对大学生兼职信息不对称、权益难保障等问题,研究基于Spring Boot、Vue、MySQL等技术的兼职系统,旨在构建安全、高效、功能完善的平台,提升大学生就业竞争力与兼职质量。
下一篇
开通oss服务