背景介紹
大家好,我是面壁人4號,我是一名Java程序員,所以Java是世界上最好的語言,希望大家不要打我。
自己大學的專業是《軟件工程》,目前從事編程工作已經三年多了。今天主要想和大家分享一下我最近的思考《如何將單點應用改造爲多點應用》。首先介紹一下背景,由於最近我們公司在做一個異地冗災備份,所以要求所有的應用都必須是支持多點。當主環境掛掉之後,備份環境能夠正常投入使用。經過排查還有一些老應用不支持多點,所以就要改造。
概念擴充
介紹爲背景,這裏講一下什麼叫多點應用,其實就是一個應用可以部署在多個服務器上進行協同工作,某一個應用掛掉了另一些應用仍然能夠提供同樣的服務。
說到這裏就和大家擴展一下幾個基礎概念
- 分佈式
- 集羣
- 負載均衡
進入正題
然後進入正題,其實單點應用改造需要從以下方面考慮
- 定時任務
- 消息隊列
- 對外接口是否支持冪等
- 鎖機制支持分佈式
- 緩存支持分佈式
- session支持分佈式
定時任務
因爲如果只有一臺機器,定時任務執行就只會在一臺機器上運行,業務代碼也不會被重複執行。一旦集羣部署,那麼一套代碼同時存在於兩個機器上,到達時間點兩個機器上的業務代碼都會執行,這樣就會操作重複處理。那麼好一點的辦法就是接入任務調度中心,可以考慮xxl-job這種類似的調度中心,幫你管理任務調度。