我在做 spring 批處理項目,從數(shù)據(jù)庫讀取記錄,然后寫入rabbitmq,然后發(fā)送到 HTTP 消息網(wǎng)關(guān)。網(wǎng)關(guān)有150TPS,我需要將我的應(yīng)用程序限制為 150TPS。有沒有辦法用彈簧批或其他更好的方法來節(jié)流?
2 回答

冉冉說
TA貢獻1877條經(jīng)驗 獲得超1個贊
你能行的:
在 Spring Batch 方面:使用 a
ItemWriteListener#beforeWrite
,使用Thread.sleep
或使用諸如Guava或Resilience4j 之類的速率限制庫來延遲項目的寫入在 RabbitMQ 方面:使用延遲消息插件以所需的速率延遲消息的傳遞。
希望這可以幫助。

BIG陽
TA貢獻1859條經(jīng)驗 獲得超6個贊
您可以通過將最大塊大小定義為您的 TPS 或小于該大小來嘗試使用面向塊的處理。
您可以參考以下文檔通過面向塊的處理實現(xiàn) Spring 批處理:
https://docs.spring.io/spring-batch/trunk/reference/html/configureStep.html
希望能幫助到你...
添加回答
舉報
0/150
提交
取消