个人踩坑之旅-代码不规范引起的“bug”

今早公司上班,老大跟我说有一个服务总是上线,下线,问我啥状况。我回想了下个人项目部署,以为不可能会出现这个问题呀。而后各类鼓捣,倒腾了一个早上,终于找出了罪魁祸首。微信

场景:咱们的服务部署在亚马逊上。咱们采用aws 的Lambda服务(有兴趣的朋友能够去了解下https://amazonaws-china.com/cn/documentation/lambda/)来进行业务报警,具体流程:业务异常-触发Lambda-调用微信通知服务(这是一个dubbo服务)-报警。网络

现象:每次有业务报警时,系统后台总会提示说 A服务(这也是dubbo服务)上线了,而后A服务下线了。可是后台提示的A服务的ip地址又不是咱们局域的ip,咱们是172.xx.xx.xxx,可是提示的ip是10.xx.xx.xxxapp

缘由:刚看到这个问题的时候各类懵逼,各类排查-ip地址是哪里的,是否是A服务在别的地方有误启动呀,代码里面是否是出现问题;各类状况都排查了一遍,就是没有问题。最后,把全部的报警记录看了一遍,发现每次有业务报警的时候都会出现。这下咱们才把关注点转向那个Lambda服务,检查代码以后发现配置文件里面的applicationName跟A服务的applicationName同样,致使你们都在查A服务的问题。至于为何每次报警都有这个问题,这是由于每次有报警时,aws 的Lambda服务就会调用 微信报警服务,zookeeper监测到该节点的注册,报警完了以后Lambda服务又会下线(一次性服务)。aws Lambda服务的网络区域跟咱们服务的网络区域不一样。ip

感悟:代码仍是要规范点,否则死都不知道怎么死。部署

相关文章
相关标签/搜索