前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Strimzi Kafka Bridge(桥接)实战之一:简介和部署

Strimzi Kafka Bridge(桥接)实战之一:简介和部署

作者头像
程序员欣宸
发布2022-11-21 09:48:10
8010
发布2022-11-21 09:48:10
举报
文章被收录于专栏:实战docker实战docker

欢迎访问我的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的文件,内容如下
代码语言:javascript
复制
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
代码语言:javascript
复制
kubectl apply -f kafka-bridge.yaml -n aabbcc
  • 查看deployment、service、pod,发现均有新增,如下图
在这里插入图片描述
在这里插入图片描述
  • 从上图可见,bridge的service是ClusterIP类型,其值是10.96.0.222,于是迫不及待的试试bridge,执行以下命令,向bridge发出第一个请求,功能是获取所有topic
代码语言:javascript
复制
curl -X GET http://10.96.0.222:8080/topics
  • 成功收到bridge的响应,如下图,现有全部topic都返回了
在这里插入图片描述
在这里插入图片描述

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

  • bridge的服务是ClusterIP类型,外部无法访问,那就新增一个NodePort类型的服务吧,新建文件bridge-service-nodeport.yaml,内容如下,31331是我在宿主机上随便找了个未占用的端口,您随意
代码语言:javascript
复制
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
代码语言:javascript
复制
kubectl apply -f bridge-service-nodeport.yaml -n aabbcc
  • 从宿主机暴露端口后,就可以用客户端工具(例如apipost)远程访问了,如下图
在这里插入图片描述
在这里插入图片描述

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

  • 从前面的架构图可以看出,业务服务与bridge之间是http协议,那么存在安全问题吗(毕竟是远程调用)?如果真的存在安全问题,strimzi都应对之策吗?
  • 安全问题确实存在,而且strimzi的应对之策也真够敷衍…不多说了,来围观吧
在这里插入图片描述
在这里插入图片描述
  • 调侃归调侃,但是真正使用bridge的时候,尤其是应用与bridge不在同一个内网环境时,一定要自己做好安全工作
  • 至此,Strimzi Kafka Bridge的介绍和部署已经完成,接下来的文章会有更多实战等着咱们,通过实际操作熟练掌握桥接特性
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-11-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 欢迎访问我的GitHub
  • 关于《Strimzi Kafka Bridge(桥接)实战》
  • 本篇概览
  • 安装方式的选择
  • 增加一个service,使得可以从外部访问
  • 安全问题(需要自己处理)
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档