DIEA
2023-07-20 11:06:23
最近我在 Node js 中制作了一個(gè)具有負(fù)載平衡功能的應(yīng)用程序。我為數(shù)據(jù)庫(kù)本身創(chuàng)建了一個(gè)服務(wù)器,并為其他管理請(qǐng)求創(chuàng)建了一個(gè)服務(wù)器。問題是,在應(yīng)用程序中,您可以使用 multer 上傳文件,而在 Express 中,您可以將文件上傳到該服務(wù)器。它是一個(gè)明確的靜態(tài)。例如,我有 4 臺(tái)服務(wù)器,一臺(tái)用于數(shù)據(jù)庫(kù),2 臺(tái)用于應(yīng)用程序,1 臺(tái)用于負(fù)載均衡器。當(dāng)負(fù)載均衡器請(qǐng)求app-1服務(wù)器時(shí),文件上傳到app-1服務(wù)器而不是db服務(wù)器。因此,當(dāng)我嘗試從 app-2 服務(wù)器訪問該文件時(shí),該文件不存在。有什么辦法可以解決這個(gè)問題嗎?或者使用負(fù)載均衡器的更好方法?因?yàn)槲沂秦?fù)載均衡器的新手。謝謝
1 回答

翻閱古今
TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊
通過(guò)app-1上傳的文件存儲(chǔ)在哪里?例如,您可以將其存儲(chǔ)在存儲(chǔ)桶中并將引用保留在 SQL 數(shù)據(jù)庫(kù)中。因此,當(dāng) app-2 嘗試訪問該文件時(shí),它會(huì)直接詢問在應(yīng)用程序之間共享的數(shù)據(jù)庫(kù)。
要回答您的問題,您有兩種解決方案:
使用負(fù)載均衡器維護(hù)會(huì)話持久性,以便請(qǐng)求 app-1 的用戶不斷請(qǐng)求 app-1,直到其會(huì)話過(guò)期。
具有無(wú)狀態(tài)后端設(shè)計(jì),這意味著您不需要會(huì)話,因此任何用戶都可以向
app
您擁有的任何實(shí)例發(fā)送請(qǐng)求,它的行為是相同的。
我會(huì)選擇解決方案 2,當(dāng)您了解無(wú)狀態(tài)概念后,它會(huì)更容易。
擁有外部存儲(chǔ)桶而不依賴app
內(nèi)部?jī)?nèi)存和存儲(chǔ)系統(tǒng)是實(shí)現(xiàn)無(wú)狀態(tài)架構(gòu)的好方法。
添加回答
舉報(bào)
0/150
提交
取消