今早公司上班,老大跟我說有一個服務總是上線,下線,問我啥狀況。我回想了下個人項目部署,以爲不可能會出現這個問題呀。而後各類鼓搗,倒騰了一個早上,終於找出了罪魁禍首。微信
場景:咱們的服務部署在亞馬遜上。咱們採用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
感悟:代碼仍是要規範點,否則死都不知道怎麼死。部署