4 回答

TA貢獻(xiàn)2016條經(jīng)驗(yàn) 獲得超9個(gè)贊
有幾種可能的解決方案:
寫入文件(如果可以寫入文件系統(tǒng))
寫入數(shù)據(jù)庫(如果您正在使用它)
向另一個(gè)微服務(wù)發(fā)出 HTTP 請(qǐng)求,該微服務(wù)將保留您的最后一條記錄

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個(gè)贊
由于應(yīng)用程序?qū)⒉渴鹪?AWS 上,因此您可以使用Systems Manager Parameter Store。您可以指定鍵值對(duì)并在每次成功的計(jì)劃更新時(shí)更新該值。這樣,即使 EC2 實(shí)例(已部署應(yīng)用程序)終止,這些鍵值對(duì)也不會(huì)受到影響。
您還可以使用 S3 存儲(chǔ)桶并將其寫入文件中。

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊
存儲(chǔ)應(yīng)用程序數(shù)據(jù)的方法有很多種,但選擇歸根結(jié)底取決于您希望解決方案的靈活性。與您的用例類似,Spring Batch Admin(現(xiàn)已停產(chǎn))正在使用 MySql DB。這樣就可以跟蹤處理過的記錄,并可以從最后一點(diǎn)繼續(xù)處理。
它可以像將數(shù)據(jù)寫入文件一樣簡(jiǎn)單,該文件可以幫助您識(shí)別最后處理的記錄,或者將其存儲(chǔ)在 Redis、MySql 或 MongoDB 等數(shù)據(jù)存儲(chǔ)中。
因此,如果您沒有正在使用的任何數(shù)據(jù)庫,如果您已經(jīng)在使用某種類型的數(shù)據(jù)存儲(chǔ)(例如 MySql、MongoDB 或 Redis),則將最后處理的記錄的標(biāo)識(shí)符存儲(chǔ)到文件中就可以了。
最好將數(shù)據(jù)存儲(chǔ)到此數(shù)據(jù)存儲(chǔ)中,因?yàn)閿?shù)據(jù)存儲(chǔ)從特定于應(yīng)用程序的邏輯或格式中抽象出來,并且可以根據(jù)需要在外部進(jìn)行查詢和/或修改。這使得解決方案更具可修改性,因?yàn)樗c應(yīng)用程序沒有緊密綁定。

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
您應(yīng)該避免將任何最常查找的數(shù)據(jù)保存在文件系統(tǒng)上。如果有數(shù)百個(gè)并發(fā)讀取,這會(huì)減慢您的應(yīng)用程序的速度。嘗試依賴持久性緩存。
所有讀取的第一選擇應(yīng)該是在內(nèi)存中。您可以異步寫入內(nèi)存和持久緩存。如果應(yīng)用程序發(fā)生故障,您應(yīng)該使用為此目的構(gòu)建的其他高性能緩存。重新啟動(dòng)時(shí),從持久緩存重新加載內(nèi)存緩存。
持久緩存例如:Elasticsearch、Redis。這將提高您的應(yīng)用程序性能并且更具可擴(kuò)展性。
添加回答
舉報(bào)