一、【影响范围】
企业用户服务不可用,影响到所有跟跨企业相关的功能和接口
二、【故障表现】
上游服务无法调用企业用户服务,从pinpoint上看,心跳接口无法响应
三、【处理过程】
测试环境redis恢复后,服务自动恢复;
删除企业用户服务中的redis相关依赖和本地配置文件中的redis配置,重新部署服务;
四、【原因分析】
在本地配置文件中,redis连接错误配置到了测试环境,consul中并没有做相关配置,服务中也没有使用redis功能。测试环境心跳不可用导致服务不可用
五、【改进措施】
1、使用consul作为配置中心统一管理微服务的配置文件
工程中至少提供以下5个配置文件,所有配置文件必需带上-{profile}后缀:
application-local.properties(可选,本地开发的时候使用)
bootstrap-local.properties(可选,本地开发的时候使用)
bootstrap-dev.properties(开发环境)
bootstrap-test.properties(测试环境)
bootstrap-production.properties(生产环境)
其中:
bootstrap-{profile}.properties是各个环境必需的,spring在启动时会去读对应{profile}的配置,不允许有默认配置文件bootstrap.properties。
application-{profile}.properties只允许有application-local.properties,不允许有默认配置文件application.properties和其他环境的的配置文件,其他环境的配置全量放在配置中心上
2、心跳不通过监控机制;(心跳检测接口返回的详细信息需要有效利用,比如返回了redis是否正常); @运维
3、测试环境和生产环境隔离,可在上线第一时间发现问题; @运维