前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >0766-6.3.3-如何实现Kafka跨网络访问

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

作者头像
Fayson
发布2020-05-16 13:51:31
3K0
发布2020-05-16 13:51:31
举报
文章被收录于专栏:Hadoop实操Hadoop实操

文档说明

在使用Kafka时会遇到内外网的场景,即Kafka集群使用内网搭建,在内网和外网均有客户端需要消费Kafka的消息,同时在集群内由于使用内网环境通信,因此不必太过考虑通信的加密,所以在内网使用非安全的协议也能够通信,但对于外网环境出于安全考虑,只允许通过安全的协议访问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的映射如下:

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

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

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

2.2 配置Kafka相关的参数

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

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

至此配置完成。

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

验证Kafka使用

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

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

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

代码语言:javascript
复制
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

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

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

总结

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
专用宿主机
专用宿主机(CVM Dedicated Host,CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档