工作日記 11 25 乙個保活機制的bug

2021-06-19 09:24:29 字數 700 閱讀 4298

正常使用者登入成功後,會存在e連線和v連線。

1.初始: 由於要通過e程序實現實時防截屏和防二次跳轉,所以e程序必須一直存在,當e程序不在時,必須把使用者踢下線,不能讓使用者繼續使用v業務,為了實現這個目的,設計了以下機制:

讓e隔3s發一次保活報文,閘道器接收這個保活報文,在連續收不到保活報文時,在閘道器把使用者的session老化掉。

2.優化:而為了防止網路丟包帶來的影響,加上了連線休眠機制:

讓e隔3s發一次保活報文,閘道器接收這個保活報文,在連續收不到這條連線的保活報文時,不直接把使用者打上刪除標誌,而是把該使用者(注意,這裡是對使用者,而不是這個e連線)打上休眠標誌,使用者打上休眠標誌後將暫不再處理v連線的業務報文,同時把連線的老化時間修改為60s,如果後續收到保活報文時重新整理老化時間並把休眠標誌刪除;如果在60s後老化檢查時仍然沒有收到保活報文,則才認為連線真正老化,此時才把使用者的session老化掉。

在使用者與閘道器只有乙個eps連線的時候,上述機制是沒有問題的。

但是當使用者與閘道器有兩條以上e連線時,就會存在以下問題。

假設存在e連線a  和b兩條連線,閘道器沒有收到a的保活時,對使用者打上休眠標誌,並重新整理老化間隔為60s,原意是延遲對保活報文檢查的時間,但是,另外一條連線b的老化間隔還是10s,由於閘道器也沒有收到b的連線,在b的10s後進入老化檢查分支,檢查到此時使用者已經被打上了休眠標誌,所以直接把使用者老化掉,這樣就造成了優化的效果完全沒有了!!

寫在2016最後乙個工作日

時間過的真快,無聲無息中2016已經接近尾聲,一年很長,但我感覺還是太短,年初的計畫有的還沒完成,但時間已經流失,在迎接新的一年來臨的同時,也給2016年做個總結。工作 首先公司的工作氛圍還是很好的,雖然長期駐外,但還是能夠感受到公司同事 領導的關懷。前兩天跟公司的評審團交流了一下工作情況,大體總結...

2019的第乙個工作日

今天是2019的第乙個工作日,不知道為啥我總是無法集中注意力來工作。與其在這裡東看西看浪費時間,不如寫寫我2018年的總結以及2019的展望。如果人的一生是一首歌的話,那麼我的2018一定是按了快進鍵。結婚 買房 裝修 辦酒.人生中很多重要的事就在下半年短短的幾個月內全部完成,對於一向追求安逸的我而...

2023年的第乙個工作日

今天是2009年的第乙個工作日,同事們來得不是太齊,但是能見到的都互致新年好,這是個熟悉又陌生的感覺。這樣的日子,總結過去的一年似乎太晚了,還是想想今年的願望吧。從何說起呢,健康還是第一位的。人的一生,不管多麼創下多少豐功偉績,到頭來還免不了終老此生。所以啊,能健康開心地活過每一天,都是非常幸福的事...