分布式部署下,如果某臺(tái)上的某個(gè)進(jìn)程建立了一個(gè)定時(shí)器timer1,然后下一次請(qǐng)求這時(shí)負(fù)載均衡路由到另一個(gè)機(jī)子,這時(shí)要銷毀這個(gè)定時(shí)器timer1,這就出問題了,找不到這個(gè)定時(shí)器。如何在分布式部署下準(zhǔn)確的銷毀定時(shí)器?
如果按照你的思路回答,那么無(wú)非是要設(shè)法“找到這個(gè)定時(shí)器”,兩個(gè)方法,一個(gè)是用一個(gè)專門的進(jìn)程來(lái)管理所有定時(shí)器,一個(gè)是建立一個(gè)注冊(cè)機(jī)制(比如用 redis 或者 GlobalData)來(lái)注冊(cè)查找定時(shí)器。
但如果可能的話,在負(fù)載均衡環(huán)節(jié)把一個(gè)特定的用戶路由到一個(gè)固定的機(jī)器上,也許是最簡(jiǎn)單的辦法,比如按照客戶端 IP 地址進(jìn)行均衡分配。