gpt4 book ai didi

StrimziKafkaBridge(桥接)实战之一:简介和部署

转载 作者:我是一只小鸟 更新时间:2023-09-27 15:03:03 37 4
gpt4 key购买 nike

欢迎访问我的GitHub

这里分类和汇总了欣宸的全部原创(含配套源码): https://github.com/zq2599/blog_demos 。

关于《Strimzi Kafka Bridge(桥接)实战》

  • 在strimzi技术体系中,桥接(bridge)是很要的功能,内容也很丰富,因此将桥接相关的内容从《strimzi实战》系列中独立出来,成立桥接相关的系列文章,便于分类和专项深入

本篇概览

  • 本文是《Strimzi Kafka Bridge(桥接)实战》系列的第一篇,按照惯例,先做好介绍和部署工作,以便后续深入学习
  • 什么是桥接?来看 官方说明 ,如下图,最上面的 Brokers 就是核心的kafka服务,底部的Client是业务应用,分为消息生产者(Producers)和消费者(Consumers)两类,正中心蓝色背景的 Strimzi Kafka Bridge 就是今天的主角:strimzi桥接服务,从下图很容易看出它的作用:通过http接口来生产和消费kafka消息
    在这里插入图片描述
  • 在整个strimzi技术体系中,bridge可谓举足轻重,如下图红框,官方为bridge准备了专门文档链接,这是其他扩展组件都没有的待遇
    在这里插入图片描述

安装方式的选择

  • bridge支持在两种环境下安装:
  1. kubernetes环境:使用strimzi的kafka-operator安装
  2. 非kubernetes环境:使用bridge的 安装包 ,解压后修改配置文件,然后用内置的shell文件启动即可
  • 整个《strimzi实战》系列都是在kubernetes环境中操作的,所以本篇 只考虑上述第一种安装方式:kafka-operator
  • 整个部署过程非常简单,首先确认kubernetes和strimzi的operator都已经部署完成,kafka服务也已经部署好了(部署细节请参考 《strimzi实战之二:部署和消息功能初体验》 )
  • 第二步:新增名为 kafka-bridge.yaml 的文件,内容如下
                        
                          apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaBridge
metadata:
  name: my-bridge
spec:
  replicas: 1
  bootstrapServers: my-cluster-kafka-bootstrap:9092
  http:
    port: 8080

                        
                      
  • 执行以下命令开始部署bridge,我这里kafka服务的namespace是 aabbcc ,请您改为自己实际的namespace
                        
                          kubectl apply -f kafka-bridge.yaml -n aabbcc

                        
                      
  • 查看deployment、service、pod,发现均有新增,如下图
    在这里插入图片描述
  • 从上图可见,bridge的service是ClusterIP类型,其值是 10.96.0.222 ,于是迫不及待的试试bridge,执行以下命令,向bridge发出第一个请求,功能是获取所有topic
                        
                          curl -X GET http://10.96.0.222:8080/topics

                        
                      
  • 成功收到bridge的响应,如下图,现有全部topic都返回了
    在这里插入图片描述

增加一个service,使得可以从外部访问

  • bridge的服务是ClusterIP类型,外部无法访问,那就新增一个NodePort类型的服务吧,新建文件 bridge-service-nodeport.yaml ,内容如下, 31331 是我在宿主机上随便找了个未占用的端口,您随意
                        
                          apiVersion: v1
kind: Service
metadata:
  name: bridge-nodeport
spec:
  type: NodePort
  ports:
  - port: 8080
    nodePort: 31331
  selector:
    strimzi.io/cluster: my-bridge
    strimzi.io/kind: KafkaBridge
    strimzi.io/name: my-bridge-bridge

                        
                      
  • 执行以下命令让上述service生效,我这里kafka服务的namespace是 aabbcc ,请您改为自己实际的namespace
                        
                          kubectl apply -f bridge-service-nodeport.yaml -n aabbcc

                        
                      
  • 从宿主机暴露端口后,就可以用客户端工具(例如apipost)远程访问了,如下图
    在这里插入图片描述

安全问题(需要自己处理)

  • 从前面的架构图可以看出,业务服务与bridge之间是http协议,那么存在安全问题吗(毕竟是远程调用)?如果真的存在安全问题,strimzi都应对之策吗?
  • 安全问题确实存在,而且strimzi的应对之策也真够敷衍...不多说了,来围观吧
    在这里插入图片描述
  • 调侃归调侃,但是真正使用bridge的时候,尤其是应用与bridge不在同一个内网环境时, 一定要自己做好安全工作
  • 至此,Strimzi Kafka Bridge的介绍和部署已经完成,接下来的文章会有更多实战等着咱们,通过实际操作熟练掌握桥接特性

欢迎关注博客园:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴... 。

最后此篇关于StrimziKafkaBridge(桥接)实战之一:简介和部署的文章就讲到这里了,如果你想了解更多关于StrimziKafkaBridge(桥接)实战之一:简介和部署的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com