发布服务故障的案例
在分布式架构下,发布一个服务,经常遇到消费者无法找到提供者的情况,这种故障的排查如下。
第一步:检查内网 在消费者的机器上,运行ping命令,看下是否能连接到提供者。
第二步:检查端口
1、可能提供者配置的端口被占用了,导致提供者的服务没有起来。使用netstat -anp |grep 端口号
,如果对应端口显示情况如下:
如图,表示3306端已经被占用
2、另外一种情况,就是防火墙没有开启对应的端口,利用iptables -L -n
可以查看哪些端口已经开放了。如果提供者服务使用的端口不在防火墙开发端口内,也会造成无法连接服务的情况。
第三步:检查机器内存
假如IP、端口都没有问题,证明网络通了,那么可能是服务本省因为某些原因没有起来,比如说内存不足。使用free -m
,查看内存使用情况。
PS:真正未用到的内存数(可用内存):free buffers cached 的值,也就是 buffers/cache。如果这个值太小,说明内存不足了。可以考虑把其他较小的项目内存弄小
第四步:检查日志 内存足够的情况下,还不能起来,看下日志是否报了错误,进行修复,重启。