鍍金池/ 問(wèn)答/人工智能  Java  Python  GO  網(wǎng)絡(luò)安全/ 如何自定義一個(gè)服務(wù)端緩存

如何自定義一個(gè)服務(wù)端緩存

情況是這樣的,公司主服務(wù)器在海外,但是現(xiàn)在國(guó)內(nèi)有一部分服務(wù)需要用到海外的主服務(wù)。海外主服務(wù)目前提供rest api 。
由于國(guó)內(nèi)需要頻繁訪問(wèn)國(guó)外的主服務(wù),故想做一層緩存。但是需要保證數(shù)據(jù)的正確性。請(qǐng)問(wèn)有沒(méi)有人做過(guò)類似的。

回答
編輯回答
夢(mèng)囈
故想做一層緩存。但是需要保證數(shù)據(jù)的正確性。

完全正確是不可能的。除非那邊服務(wù)有相應(yīng)的“通知”。

if hasCache:
    return cache

不就這樣么。

2017年4月14日 07:29
編輯回答
薄荷糖

redis.

2017年8月14日 19:15
編輯回答
孤慣

你想到了緩存,那么代表需要訪問(wèn)的這部分?jǐn)?shù)據(jù)是可以接受延遲的,那么可以建立一個(gè)“代理層”,所有的請(qǐng)求轉(zhuǎn)到代理層,由代理層向遠(yuǎn)程服務(wù)器發(fā)送請(qǐng)求,并由代理層統(tǒng)一執(zhí)行緩存管理。

但是需要注意的是,緩存會(huì)引起延遲,如果所需要的服務(wù)的正確性是建立在數(shù)據(jù)的即時(shí)性基礎(chǔ)之上的,那么這些服務(wù)就不能這么做了。

2017年3月11日 21:44
編輯回答
久舊酒

這需要看你能不能改主服務(wù)器了。如果可以就開(kāi)個(gè)keep alive的連接,主服務(wù)器改動(dòng)了就同意你,你在去獲取,然后修改本地的數(shù)據(jù)。另外,要考慮到特殊的網(wǎng)絡(luò)環(huán)境,http連接可能隨時(shí)會(huì)斷

如果不能的話就直接隔一段時(shí)間查詢一次主服務(wù)器,然后檢驗(yàn)當(dāng)前文件的hash和緩存文件的hash是否一致。

2018年2月12日 14:56