session入庫操作例子 Openresty怎么跟后端tomcat共用session?
Openresty怎么跟后端tomcat共用session?OpenResty和Tomcat分工不同,像這種異構(gòu)模式,如果要共用Session會(huì)話,用傳統(tǒng)的Cookie模式實(shí)現(xiàn)成本是很大的。那對于這種
Openresty怎么跟后端tomcat共用session?
OpenResty和Tomcat分工不同,像這種異構(gòu)模式,如果要共用Session會(huì)話,用傳統(tǒng)的Cookie模式實(shí)現(xiàn)成本是很大的。
那對于這種異構(gòu)或者集群分布式環(huán)境、又或者是不同域名間的Session共享該如何實(shí)現(xiàn)呢?要弄清楚這個(gè)問題,我們得先清楚Session的工作原理。
Session存儲(chǔ)于服務(wù)器端,存儲(chǔ)一般是內(nèi)存、文件形式。服務(wù)器端可以存放很多Session,在眾多的Session中如果需要對特定用戶的Session進(jìn)行操作,我們就必須要知道這個(gè)Session的唯一標(biāo)識。這個(gè)標(biāo)識就是SessionID,不同服務(wù)器/容器生成SessionID的算法不同,啟用Session后,瀏覽器發(fā)出請求,SessionID就被寫入用戶瀏覽器的Cookie中,瀏覽器后續(xù)請求都會(huì)把Cookie附加在請求頭中傳遞到服務(wù)器端,服務(wù)器端根據(jù)這個(gè)SessionID就能找到服務(wù)器端對應(yīng)的Session進(jìn)行操作了。
這樣一來,只要我們能讓SessionID實(shí)現(xiàn)共享,那Session就能共用了,所以我們可以采用以下方案來實(shí)現(xiàn):
1、Session入庫存儲(chǔ)
將Session存入數(shù)據(jù)庫,這樣不管是OpenResty還是Tomcat都可以操作數(shù)據(jù)庫,能輕松取出數(shù)據(jù)庫中的Session。
2、Session存入NoSQL
此種方案和Session入庫差不多,原理都一樣,只不過我們用NoSQL(如:Redis),這樣干的目的就是降低頻繁操作數(shù)據(jù)庫造成的性能開銷。
綜上,OpenResty中我們可以直接操作Redis,然后應(yīng)用程序端也來操作Redis即可,這樣可以實(shí)現(xiàn)Session共享。
以上就是我的觀點(diǎn),對于這個(gè)問題大家是怎么看待的呢?歡迎在下方評論區(qū)交流 ~ 我是科技領(lǐng)域創(chuàng)作者,十年互聯(lián)網(wǎng)從業(yè)經(jīng)驗(yàn),歡迎關(guān)注我了解更多科技知識!