本机redis客户端与虚拟机上服务端以及Storm drpc无法连接通常情况的解决方案

最近在学redis、Storm drpc等框架的时候都出现了本地主机的客户端无法正常连接虚拟机上的服务端。在经过一段时间的排查后,发现最终都是同一个原因,不过被我忽视了。为了以后遇到类似的问题可以节省时间,所以在这里记录下来。
redis报错如下:

ERROR o.a.s.d.executor - 
redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
Caused by: redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: connect timed out
Caused by: java.net.SocketTimeoutException: connect timed out

解决方案:
1.我查看了IP地址和端口号,没有问题。
2.尝试systemctl stop firewall关闭firewall防火墙,发现firewall在storm测试的时候为了省事儿已经被我关了。
3.经过了很长时间的尝试还是没好,就在将要放弃的时候,突然想到会不会是centos的iptables 将请求过滤掉了。尝试让redis的默认端口6379允许通过,/sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT最终解决。
Storm drpc报错如下:

Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: org.apache.storm.thrift.transport.TTransportException: java.net.ConnectException: Connection timed out: connect
Caused by: java.lang.RuntimeException: org.apache.storm.thrift.transport.TTransportException: java.net.ConnectException: Connection timed out: connect
Caused by: org.apache.storm.thrift.transport.TTransportException: java.net.ConnectException: Connection timed out: connect
Caused by: java.net.ConnectException: Connection timed out: connect

由于在遇到这个问题之后没有及时解决,导致后面又遇到了同样的问题,花费了大量的时间。
解决方法同上,最终在iptables中开启对应端口,/sbin/iptables -I INPUT -p tcp --dport 3772 -j ACCEPT问题解决。
吸取教训,以后发生类似连接问题,先查firewall和iptables,节省时间;遇到问题及时解决,否则会碰到同样的问题。

发布了4 篇原创文章 · 获赞 3 · 访问量 1662

猜你喜欢

转载自blog.csdn.net/jiahongfei1213895/article/details/105100588