[問題排查]記錄一次兩個dubbo提供者同時在線,代碼不一致導致問題的排查記錄


1. 需求

  有一個需求job定時5秒一次,job【消費者】調用dsc【提供者】提供的dubbo完成:先清空redis的某個key,然后再往redis中放入新的數據,這是一個定時任務,需要每隔5秒執行一次;

2. 問題場景

  某次上線發布之后,發現再寫入redis中添加了多一點數據的寫入,然后發布之后發現一個奇怪的情況,就是redis中數據一下子有,隔幾秒又沒有的問題,查找了一個早上,盯着日志看了很久都沒發現問題;

3. 解決過程

  最后詢問一個同事,

  他問:是走dubbo接口的嗎?

  回:是

  他問:那你可以看一下dubbo-mointer會不會存在兩個提供者。

  最后從dubbo的監控中看到有兩個dubbo的提供者,url完全一樣,但是一個服務上線了新的代碼,一個服務忘記上線新代碼了,導致如果job調用到新的代碼就會有新數據的返回,如果調用舊的就會沒有數據;

4. 解決方案【選一種執行】

  4.1 將舊的服務停止

  4.2 將服務代碼更新

5. 總結

  使用微服務架構的時候,很多時候考慮問題不能用單機模式的思維了,需要轉換成分布式的思想,就是服務可能分布在多個地方,查找問題的時候需要從多個角度來思考問題。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM