登录
首页 >  Golang >  Go教程

Go-Micro 服务发现失效:CentOS 7 防火墙配置导致服务不可用,如何解决?

时间:2024-11-03 21:30:43 102浏览 收藏

一分耕耘,一分收获!既然打开了这篇文章《Go-Micro 服务发现失效:CentOS 7 防火墙配置导致服务不可用,如何解决?》,就坚持看下去吧!文中内容包含等等知识点...希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!

Go-Micro 服务发现失效:CentOS 7 防火墙配置导致服务不可用,如何解决?

go-micro 无法自动发现服务

在使用 go-micro 构建分布式微服务时,遇到无法自动发现服务的问题。以下问题描述和答案将帮助攻克此难题:

环境:

  • go 1.14.7
  • go-micro v2
  • centos 7

现象:

在关闭防火墙的情况下,服务运行正常。但是,一旦开启防火墙,节点无法被发现,服务不可用。

测试方法:

必要的端口已添加到防火墙规则:

  • firewall-cmd --zone=public --add-port=5672/tcp --permanent
  • firewall-cmd --zone=public --add-port=5672/udp --permanent

防火墙和服务器已重启,但问题依然存在。

解决方案:

发现问题的根源在于 centos 7 中防火墙和 iptables 之间的一个坑。iptables 的规则链影响了服务发现机制。通过以下步骤解决了问题:

  1. 清除 iptables 规则:
/etc/firewalld/direct-table-manager
iptables -f
/etc/firewalld/direct-table-manager
  1. 重新加载防火墙:
systemctl restart firewalld
  1. 将必要的端口添加到防火墙规则:
  • firewall-cmd --add-port=5672/tcp --permanent
  • firewall-cmd --add-port=5672/udp --permanent
  1. 重新加载防火墙:
systemctl restart firewalld

经过上述步骤,go-micro 能够自动发现服务,问题得以解决。

今天关于《Go-Micro 服务发现失效:CentOS 7 防火墙配置导致服务不可用,如何解决?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>