前提纪要:线上环境服务器由于某些原因重启,重启前部署服务的各服务器一切正常,服务器相互之间开启了firewalld的rich rules端口白名单规则。
问题1:重启后各服务器的防火墙firewalld确实自动开启了,但原本服务器上配置的rich rules由于在重启前没有做永久化配置处理,所以导致各服务器上的firewalld rich rules消失,不同服务器之间的微服务feign调用不通。由于这个问题比较隐蔽,所以寻找原因花费了一些时间。
问题2:由于是内网的服务器,没办法访问公网网络,重启前服务器又没有设置固定好时区。导致重启后服务器又回到了默认时区,系统时间突然比东八区向后推了8个小时。
此时问题来了,没法做网络时间校准同步,因为是内网服务器没有公网网络,所以趁着流量低峰手动设置了系统时间为当前东八区时间。而服务中的实体类又大量使用了雪花id,雪花id这个强依赖于系统时间戳的玩意,因为重启后时间向后推了8个小时,已经有许多数据的雪花id按照这个时间生成了,而此时手动向前调整回正确的系统时间,雪花id的生成就突然报异常了,程序拒绝生成雪花id,经典的雪花id的时间回拨问题被我遇到了,为了避免生成重复id,竟然敢拒绝生成雪花id(突然意识到了自增id的好/(ㄒoㄒ)/ ),无奈之下,只得将系统时间又手动向后调回到8小时之后。庆幸的是,这个线上环境的服务只是某个场合的临时使用几天,系统时间的不正确不会产生太大影响。
以上两个问题带给我的思考:以后服务上线正式环境之前,确实要对服务器做好设置和检查,什么防火墙、时区,意外重启后可能产生的问题啦,都得要考虑的细致。