apache-zookeeper - 如何限制传入连接的 Zookeeper 端口范围
问题描述
我们平台上的两个服务存在端口冲突。其中一项服务是监听 45454 端口,另一项服务是 zookeeper 服务器。
当监听端口 45454 的服务重新启动,然后 zookeeper 接受连接并使用相同的 tcp 端口 45454 时,就会出现问题。
有没有办法限制zookeeper可以使用哪些端口?还是我们应该将侦听端口 45454 的服务更改为另一个(较低的)端口?
我环顾四周,试图用谷歌搜索解决方案,但到目前为止,我在找到解决方案时惨遭失败。
谢谢,
解决方案
要明确连接客户端>服务器,需要服务器上的侦听端口和客户端的随机临时端口。接受连接不需要额外的端口。
Zookeeper 监听(默认)2181
客户端和2888
,3888
内部通信,没有冲突。最有可能您的 Zookeeper 使用临时端口在本地建立了与另一个节点的连接。
临时端口由内核从 systctl param- net.ipv4.ip_local_port_range范围内随机给出。我当前的值是从 32768 到 60999。
解决方案
- 降低冲突服务的端口号。
添加冲突的端口号作为保留(不被临时使用) - ip_local_reserverd_ports
sysctl -w net.ipv4.ip_local_reserved_ports="45455"
更改临时端口范围
# my linux default is from 32768 to 60999 sysctl -w net.ipv4.ip_local_port_range="45455 60999"
推荐阅读
- python - 用python计算fasta中的20-mers数字
- python - 在 SageMaker 中调用 fit 方法时如何防止出现 NoCredentialsError?
- linux - Docker Compose 中的 MongoDb - 提供配置
- java - InetAddress.getHostName() 不会从远程 IP 返回预期的反向名称查找,如 linux Host 命令
- angular - AngularDart [routerLink] 不附加父路径
- javascript - 使用本地存储或 cookie 来检测菜单点击
- java - 如何在 Java 中获取 OkHttp 的 POST 正文请求?
- css - 线性渐变背景末尾的CSS阴影白线
- c++ - QSqlQuery 没有从 postgresql 中选择记录
- node.js - 猫鼬:按名称查找模型 - 回调从未调用