首页 > 其他分享 >0766-6.3.3-如何实现Kafka跨网络访问

0766-6.3.3-如何实现Kafka跨网络访问

时间:2022-10-04 14:03:55浏览次数:58  
标签:配置 Kafka 外网 listeners 集群 9797 6.3 0766

文档说明




在使用Kafka时会遇到内外网的场景,即Kafka集群使用内网搭建,在内网和外网均有客户端需要消费Kafka的消息,同时在集群内由于使用内网环境通信,因此不必太过考虑通信的加密,所以在内网使用非安全的协议也能够通信,但对于外网环境出于安全考虑,只允许通过安全的协议访问Kafka集群,本文档介绍如何基于双网卡来配置Kafka。

通信方式如下图:

0766-6.3.3-如何实现Kafka跨网络访问_kafka

测试条件:

  • CDH和CM为6.3.3
  • Kafka版本为2.2.1
  • 集群和Kafka均已启用Kerberos
  • 内网IP格式为192.168.1.*
  • 外网IP格式为192.168.0.*
  • Kafka集群三台机器cdh[1-3].hadoop.com,外网客户端cdh02.hadoop.com


配置步骤




2.1 配置hosts

1.在集群内节点配置主机名和内网ip的映射如下:

0766-6.3.3-如何实现Kafka跨网络访问_外网_02


2.在集群外节点配置主机名和外网ip的映射如下:

0766-6.3.3-如何实现Kafka跨网络访问_外网_03


3.在此处对内外网环境做验证

0766-6.3.3-如何实现Kafka跨网络访问_内网_04

0766-6.3.3-如何实现Kafka跨网络访问_kafka_05

由上图可以看到,外网的客户端节点只能访问192.168.0.*,而无法访问192.168.1.*,并且telnet内网的9092端口也是不通的。


2.2 配置Kafka相关的参数

1.进入CM的Kafka配置页面,搜索kafka.properties

0766-6.3.3-如何实现Kafka跨网络访问_外网_06


2.根据三个不同的角色组,分别对Broker进行配置

0766-6.3.3-如何实现Kafka跨网络访问_kafka_07


至此配置完成。

注:advertised_listeners 是对外暴露的服务端口,真正建立连接用的是 listeners,listeners中配置的监听,如果不发布到advertised_listeners中是无法直接访问的,并且advertised_listeners中的配置必须要在listeners中已经配置过。


验证Kafka使用




1.在集群内节点创建topic,名称为faysonTopic,并生产一些消息。

0766-6.3.3-如何实现Kafka跨网络访问_外网_08


2.在集群内节点通过非安全的方式对topic进行消费,使用9092端口

0766-6.3.3-如何实现Kafka跨网络访问_内网_09


3.在集群外节点通过安全的方式使用外网环境消费topic,使用9797端口

export KAFKA_OPTS="-Djava.security.auth.login.config=./jaas-keytab.conf"
kafka-console-consumer --topic faysonTopic --from-beginning --bootstrap-server cdh1.hadoop.com:9797,cdh2.hadoop.com:9797,cdh3.hadoop.com:9797 --consumer.config client.properties

0766-6.3.3-如何实现Kafka跨网络访问_外网_10

0766-6.3.3-如何实现Kafka跨网络访问_kafka_11


使用到的配置文件截图如下:

0766-6.3.3-如何实现Kafka跨网络访问_kafka_12

至此测试完成,内外网环境均可成功消费Kafka中的消息


总结




1.针对listeners=PLAINTEXT://ip:9092,SASL_PLAINTEXT://:9797配置,让安全访问使用的9092端口只绑定在内网ip上,9797端口绑定在所有ip上,让外网环境只能够通过安全的协议来访问Kafka,如下:

0766-6.3.3-如何实现Kafka跨网络访问_内网_13


2.针对advertised.listeners= SASL_PLAINTEXT://hostname:9797配置,主要是通过域名映射的方式,通过客户端配置的外网IP与域名的hosts映射,保证外网的客户端能够访问Kafka集群。

标签:配置,Kafka,外网,listeners,集群,9797,6.3,0766
From: https://blog.51cto.com/u_14049791/5731239

相关文章

  • 如何规划设置Kafka Broker的heap size
    温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。Fayson的github:​​https://github.com/fayson/cdhproject​​提示:代码块部分可......
  • 0840-6.3.4-Aqua Data Studio工具安装及访问安全环境的Hive和Impala
    作者:冯庆煜1.文档编写目的AquaDataStudio是一款完整IDE的数据库开发工具,它提供3种主要功能:数据查询与管理工具。比对数据工具与源控制和文件系统的整合工具。帮助你创建,编......
  • 0887-7.1.4-如何在CDP中为Kafka启用Kerberos认证及使用
    1.文档编写目的在CDP集群中启用了Kerberos认证,那么Kafka集群能否与Kerberos认证服务集成呢?本文主要讲述如何通过ClouderaManager为Kafka集群启用Kerberos认证及客户端配置......
  • fast-data-dev 快速基于容器的kafka 环境
    fast-data-dev是由lensesio团队提供的一个快速部署kafka测试环境的工具包含的组件kafkazkschemaregistrykafkaconnect以及其他不少的connector参考资料http......
  • kafka是啥?虽然很难学,但是实验入门很简单
    文章目录​​kafka概述​​​​kafka快速入门​​​​本地搭建伪分布式kafka集群​​​​使用docker部署kafka​​​​更深入的学习(待更)​​​​学习链接​​kafka概述Kaf......
  • 【Swoole系列6.3】Hyperf 运行各种网络服务
    Hyperf运行各种网络服务简单地运行起普通的HTTP服务之后,今天我们再来学习一下如何使用Hyperf运行TCP/UDP以及WebSocket服务。之前我们通过普通的Swoole都已经搭......
  • 使用 docker-compose 安装 es、kibana、mysql、redis、kafka
    由于经常的安装虚拟机,每次都要重装环境比较麻烦。这次写了一个docker-compose文件,一次性搞定安装问题。#Useroot/exampleasuser/passwordcredentialsversion:"3......
  • [Kafka]Kafka学习 -- 初识Kafka
    Kafka学习--初识Kafka参考资料:稀土掘金《图解Kafka之实战指南》https://juejin.cn/book/6844733793220165639Kafka是一个多分区、多副本、基于Zookeeper协调的分布式消......
  • 我的 Kafka 旅程 - Consumer
    kafka采用Consumer消费者Pull主动拉取数据的方式,当Broker无数据时,消费者空转。Kafka并不删除已消费的消息,各自独立的消费者可消费同一个Broker分区数据。消费流程1、消......
  • k8s部署elk+filebeat+kafka-kraft模式集群(三)filebeat部署
    k8s集群部署filebeatfilebeat需要采集每个节点的容器日志,所以我们选择daemonset的方式#catfilebeat-rbac.yamlapiVersion:v1kind:ServiceAccountmetadata:nam......