kafka内外网访问配置问题及解决

1.kafka在远程服务器安装,成功启动,正常测试消息发布,消费。

配置:

listeners=PLAINTEXT://localhost:9092

zookeeper.connect=localhost:2181

2.使用springboot进行kafka整合,此时使用外网ip连接,报错:

Connection to node 0 could not be established. Broker may not be available.

3.修改kafka的配置文件

#listeners=PLAINTEXT://:9092  需要将本地连接注释掉
advertised.listeners=PLAINTEXT://服务器IP:9092
zookeeper.connect=localhost:2181

重启kafka即可。

spring整合kafka的demo:源码下载

### 启用Kafka SASL认证 对于Apache Kafka,在内外网络环境下启用SASL认证涉及配置服务器端和客户端设置。由于`kafka-topics.sh`默认不支持SASL认证[^1],因此需要调整相关配置文件来确保安全连接。 #### 服务端配置 为了使Kafka集群能够处理来自外部或内部带有SASL认证请求的数据流,需修改`server.properties`文件中的监听器配置- **内部环境** 当仅限于局域网内的机器访问时,可以定义如下形式的监听者属性: ```properties listeners=SASL_PLAINTEXT://localhost:9092 listener.security.protocol.map=PLAINTEXT:SASL_PLAINTEXT sasl.enabled.mechanisms=SCRAM-SHA-512 ``` 这段配置指定了使用SASL/PLAINTEXT协议,并允许通过SCRAM-SHA-512机制进行身份验证。 - **外部环境** 针对公网开放的服务,则应采用更严格的安全措施如TLS加密传输层加上SASL认证组合(`SASL_SSL`)。这不仅保护了数据在网络上传输时不被窃听,同时也实现了强效的身份验证过程。 ```properties advertised.listeners=SASL_SSL://your.public.ip.address:9094 listener.name.sasl_ssl.scram-sha-512.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required; security.inter.broker.protocol=SASL_SSL ssl.keystore.location=/path/to/kafka.server.keystore.jks ssl.keystore.password=<keystore-password> ssl.key.password=<key-password> ssl.truststore.location=/path/to/kafka.client.truststore.jks ssl.truststore.password=<truststore-password> ``` 以上参数设置了对外暴露的接口地址以及SSL证书路径等必要信息;同时启用了跨代理间的通信也遵循相同的认证模式。 #### 客户端配置 为了让生产者或消费者能成功连接到已启用SASL认证的Broker上,同样也需要相应地更新其配置项。例如,在创建topic或其他管理操作之前,先指定好合适的JAAS配置文件并加载它。 ```bash export KAFKA_OPTS="-Djava.security.auth.login.config=/path/to/jaas.conf" ./bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test-topic ``` 其中jaas.conf的内容可能类似于这样: ```plaintext KafkaClient { org.apache.kafka.common.security.scram.ScramLoginModule required username="admin" password="password"; }; ``` 此段声明表明将利用用户名密码对的方式完成登录校验流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值