เด•เดพเดซเตเด•เดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดฒเดญเดฟเดšเตเดš เด‡เดตเดจเตเดฑเตเด•เตพ เดฑเต€เดชเตเดฐเต‹เดธเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต

เด•เดพเดซเตเด•เดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดฒเดญเดฟเดšเตเดš เด‡เดตเดจเตเดฑเตเด•เตพ เดฑเต€เดชเตเดฐเต‹เดธเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต

เดนเดฒเต‹, เดนเดฌเตเตผ.

เด…เดŸเตเดคเตเดคเดฟเดŸเต† เด เดคเดจเตเดฑเต† เด…เดจเตเดญเดตเด‚ เดชเด™เตเด•เตเดตเต†เดšเตเดšเต เด•เดพเดซเตเด• เดชเตเดฐเตŠเดกเตเดฏเต‚เดธเดฑเดฟเดจเตเด‚ เด‰เดชเดญเต‹เด•เตเดคเดพเดตเดฟเดจเตเด‚ เด—เตเดฏเดพเดฐเดฃเตเดŸเต€เดกเต เดกเต†เดฒเดฟเดตเดฑเดฟเดฏเตเดฎเดพเดฏเดฟ เด…เดŸเตเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เด’เดฐเต เดŸเต€เด‚ เดŽเดจเตเดจ เดจเดฟเดฒเดฏเดฟเตฝ เดเดคเตŠเด•เตเด•เต† เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เดณเดพเดฃเต เดฎเดฟเด•เตเด•เดชเตเดชเต‹เดดเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต เดŽเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต. เดฌเดพเดนเตเดฏ เดธเด‚เดตเดฟเดงเดพเดจเดคเตเดคเดฟเดจเตเดฑเต† เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด• เดฒเดญเตเดฏเดคเด•เตเด•เตเดฑเดตเดฟเดจเตเดฑเต† เดซเดฒเดฎเดพเดฏเดฟ เด•เดพเดซเตเด•เดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดฒเดญเดฟเดšเตเดš เด’เดฐเต เด‡เดตเดจเตเดฑเดฟเดจเตเดฑเต† เดชเตเดจเดƒเดธเด‚เดธเตเด•เดฐเดฃเด‚ เดžเด™เตเด™เตพ เดŽเด™เตเด™เดจเต†เดฏเดพเดฃเต เดธเด‚เด˜เดŸเดฟเดชเตเดชเดฟเดšเตเดšเดคเต†เดจเตเดจเต เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เดžเดพเตป เดจเดฟเด™เตเด™เดณเต‹เดŸเต เดชเดฑเดฏเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต.

เด†เดงเตเดจเดฟเด• เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดตเดณเดฐเต† เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฏ เด…เดจเตเดคเดฐเต€เด•เตเดทเดคเตเดคเดฟเดฒเดพเดฃเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต. เด’เดฐเต เด†เดงเตเดจเดฟเด• เดŸเต†เด•เตเดจเต‹เดณเดœเดฟ เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเตฝ เดชเตŠเดคเดฟเดžเตเดž เดฌเดฟเดธเดฟเดจเดธเตเดธเต เดฒเต‹เดœเดฟเด•เต, Kubernetes เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ OpenShift เดชเต‹เดฒเตเดณเตเดณ เด’เดฐเต เด“เตผเด•เตเด•เดธเตเดŸเตเดฐเต‡เดฑเตเดฑเตผ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดกเต‹เด•เตเด•เตผ เด‡เดฎเต‡เดœเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เดซเดฟเดธเดฟเด•เตเด•เตฝ, เดตเต†เตผเดšเตเดตเตฝ เดฑเต‚เดŸเตเดŸเดฑเตเด•เดณเตเดŸเต† เด’เดฐเต เดถเตƒเด‚เด–เดฒเดฏเดฟเดฒเต‚เดŸเต† เดฎเดฑเตเดฑเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เดณเตเดฎเดพเดฏเต‹ เดŽเดจเตเดฑเตผเดชเตเดฐเตˆเดธเต เดธเตŠเดฒเตเดฏเต‚เดทเดจเตเด•เดณเตเดฎเดพเดฏเต‹ เด†เดถเดฏเดตเดฟเดจเดฟเดฎเดฏเด‚ เดจเดŸเดคเตเดคเตเดจเตเดจเต. เด…เดคเตเดคเดฐเดฎเตŠเดฐเต เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดฏเดฟเตฝ, เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดŽเดชเตเดชเต‹เดดเตเด‚ เดคเด•เดฐเดพเดฑเดฟเดฒเดพเดฏเต‡เด•เตเด•เดพเด‚, เด…เดคเดฟเดจเดพเตฝ เดฌเดพเดนเตเดฏ เดธเด‚เดตเดฟเดงเดพเดจเด™เตเด™เดณเดฟเดฒเตŠเดจเตเดจเต เดฒเดญเตเดฏเดฎเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด‡เดตเดจเตเดฑเตเด•เตพ เดตเต€เดฃเตเดŸเตเด‚ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดžเด™เตเด™เดณเตเดŸเต† เดฌเดฟเดธเดฟเดจเดธเตเดธเต เดชเตเดฐเด•เตเดฐเดฟเดฏเด•เดณเตเดŸเต† เด’เดฐเต เดชเตเดฐเดงเดพเดจ เดญเดพเด—เดฎเดพเดฃเต.

เด•เดพเดซเตเด•เดฏเตเด•เตเด•เต เดฎเตเดฎเตเดชเต เดŽเด™เตเด™เดจเต†เดฏเดพเดฏเดฟเดฐเตเดจเตเดจเต

เดจเต‡เดฐเดคเตเดคเต† เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเตฝ เดžเด™เตเด™เตพ เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดธเดจเตเดฆเต‡เดถ เดตเดฟเดคเดฐเดฃเดคเตเดคเดฟเดจเดพเดฏเดฟ IBM MQ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดฟเดฐเตเดจเตเดจเต. เดธเต‡เดตเดจเดคเตเดคเดฟเดจเตเดฑเต† เดชเตเดฐเดตเตผเดคเตเดคเดจ เดธเดฎเดฏเดคเตเดคเต เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดชเดฟเดถเด•เต เดธเด‚เดญเดตเดฟเดšเตเดšเดพเตฝ, เดฒเดญเดฟเดšเตเดš เดธเดจเตเดฆเต‡เดถเด‚ เด•เต‚เดŸเตเดคเตฝ เดฎเดพเดจเตเดตเตฝ เดชเดพเดดเตโ€Œเดธเดฟเด‚เด—เดฟเดจเดพเดฏเดฟ เด’เดฐเต เดกเต†เดกเต-เดฒเต†เดฑเตเดฑเตผ-เด•เตเดฏเต‚เดตเดฟเตฝ (DLQ) เดธเตเดฅเดพเดชเดฟเด•เตเด•เดพเด‚. เด‡เตปเด•เดฎเดฟเด‚เด—เต เด•เตเดฏเต‚เดตเดฟเดจเต เด…เดŸเตเดคเตเดคเดพเดฏเดฟ DLQ เดธเตƒเดทเตเดŸเดฟเดšเตเดšเต, เดธเดจเตเดฆเต‡เดถเด‚ IBM MQ- เดฒเต‡เด•เตเด•เต เด•เตˆเดฎเดพเดฑเดฟ.

เดชเดฟเดถเด•เต เดคเดพเตฝเด•เดพเดฒเดฟเด•เดฎเดพเดฃเต†เด™เตเด•เดฟเตฝ เดžเด™เตเด™เตพเด•เตเด•เต เด…เดคเต เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเดฎเต†เด™เตเด•เดฟเตฝ (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด’เดฐเต HTTP เด•เต‹เดณเดฟเดฒเต† เด’เดฐเต ResourceAccessException เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ MongoDb เด…เดญเตเดฏเตผเดคเตเดฅเดจเดฏเดฟเตฝ เด’เดฐเต MongoTimeoutException), เดชเดฟเดจเตเดจเต† เดตเต€เดฃเตเดŸเตเด‚ เดถเตเดฐเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดคเดจเตเดคเตเดฐเด‚ เดชเตเดฐเดพเดฌเดฒเตเดฏเดคเตเดคเดฟเตฝ เดตเดฐเตเด‚. เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเดฑเต† เดฌเตเดฐเดพเดžเตเดšเดฟเด‚เด—เต เดฒเต‹เดœเดฟเด•เต เดชเดฐเดฟเด—เดฃเดฟเด•เตเด•เดพเดคเต† เดคเดจเตเดจเต†, เดฏเดฅเดพเตผเดคเตเดฅ เดธเดจเตเดฆเต‡เดถเด‚ เด…เดฏเดฏเตโ€Œเด•เตเด•เดพเตป เด•เดพเดฒเดคเดพเดฎเดธเด‚ เดจเต‡เดฐเดฟเดŸเตเดจเตเดจ เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เตเดฏเต‚เดตเดฟเดฒเต‡เด•เตเด•เต‹ เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เดตเต€เดฃเตเดŸเตเด‚ เด…เดฏเดฏเตโ€Œเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดตเดณเดฐเต† เดฎเตเดฎเตเดชเตเดคเดจเตเดจเต† เด‰เดฃเตเดŸเดพเด•เตเด•เดฟเดฏ เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เด…เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดฟเดฒเต‡เด•เตเด•เต‹ เดฎเดพเดฑเตเดฑเดฟ. เด‡เดคเดฟเตฝ เดธเดจเตเดฆเต‡เดถ เดคเดฒเด•เตเด•เต†เดŸเตเดŸเดฟเดฒเต† เด’เดฐเต เดฑเต€เดธเต†เตปเดกเต เดจเดฎเตเดชเตผ เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเต, เด…เดคเต เด•เดพเดฒเดคเดพเดฎเดธเด‚ เด‡เดŸเดตเต‡เดณเดฏเตเดฎเดพเดฏเต‹ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป-เดฒเต†เดตเตฝ เดธเตเดŸเตเดฐเดพเดฑเตเดฑเดœเดฟเดฏเตเดŸเต† เด…เดตเดธเดพเดจเดตเตเดฎเดพเดฏเต‹ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดžเด™เตเด™เตพ เดคเดจเตเดคเตเดฐเดคเตเดคเดฟเดจเตเดฑเต† เด…เดตเดธเดพเดจเดคเตเดคเดฟเตฝ เดŽเดคเตเดคเดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเดฒเตเด‚ เดฌเดพเดนเตเดฏ เดธเดฟเดธเตเดฑเตเดฑเด‚ เด‡เดชเตเดชเต‹เดดเตเด‚ เดฒเดญเตเดฏเดฎเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดธเตเดตเดฎเต‡เดงเดฏเดพ เดชเดพเดดเตโ€Œเดธเดฟเด‚เด—เดฟเดจเดพเดฏเดฟ เดธเดจเตเดฆเต‡เดถเด‚ DLQ-เตฝ เดธเตเดฅเดพเดชเดฟเด•เตเด•เตเด‚.

เด’เดฐเต เดชเดฐเดฟเดนเดพเดฐเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเต

เด‡เดจเตเดฑเตผเดจเต†เดฑเตเดฑเดฟเตฝ เดคเดฟเดฐเดฏเตเดจเตเดจเต, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดต เด•เดฃเตเดŸเต†เดคเตเดคเดพเดจเดพเด•เตเด‚ เดคเต€เดฐเตเดฎเดพเดจเด‚. เดšเตเดฐเตเด•เตเด•เดคเตเดคเดฟเตฝ, เด“เดฐเต‹ เด•เดพเดฒเดคเดพเดฎเดธ เด‡เดŸเดตเต‡เดณเดฏเตโ€Œเด•เตเด•เตเด‚ เด’เดฐเต เดตเดฟเดทเดฏเด‚ เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เดพเดจเตเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฏ เด•เดพเดฒเดคเดพเดฎเดธเดฎเตเดณเตเดณ เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เดตเดพเดฏเดฟเด•เตเด•เตเดจเตเดจ เดตเดถเดคเตเดคเต เด‰เดชเดญเต‹เด•เตเดคเตƒ เด…เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเดจเตเด‚ เดจเดฟเตผเดฆเตเดฆเต‡เดถเดฟเด•เตเด•เตเดจเตเดจเต.

เด•เดพเดซเตเด•เดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดฒเดญเดฟเดšเตเดš เด‡เดตเดจเตเดฑเตเด•เตพ เดฑเต€เดชเตเดฐเต‹เดธเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต

เดงเดพเดฐเดพเดณเด‚ เดชเต‹เดธเดฟเดฑเตเดฑเต€เดตเต เด…เดตเดฒเต‹เด•เดจเด™เตเด™เตพ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเดฟเดŸเตเดŸเตเด‚, เด‡เดคเต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดตเดฟเดœเดฏเดฟเดšเตเดšเดฟเดฒเตเดฒเต†เดจเตเดจเต เดŽเดจเดฟเด•เตเด•เต เดคเต‹เดจเตเดจเตเดจเตเดจเต. เด’เดจเตเดจเดพเดฎเดคเดพเดฏเดฟ, เด•เดพเดฐเดฃเด‚ เดกเดตเดฒเดชเตเดชเตผ, เดฌเดฟเดธเดฟเดจเดธเตเดธเต เด†เดตเดถเตเดฏเด•เดคเด•เตพ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดชเตเดฑเดฎเต‡, เดตเดฟเดตเดฐเดฟเดšเตเดš เดธเด‚เดตเดฟเดงเดพเดจเด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเตป เดงเดพเดฐเดพเดณเด‚ เดธเดฎเดฏเด‚ เดšเต†เดฒเดตเดดเดฟเด•เตเด•เต‡เดฃเตเดŸเดฟเดตเดฐเตเด‚.

เด•เต‚เดŸเดพเดคเต†, เด•เดพเดซเตเด• เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เด†เด•เตเดธเดธเต เด•เตบเดŸเตเดฐเต‹เตพ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดตเดฟเดทเดฏเด™เตเด™เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเดจเตเด‚ เด…เดตเดฏเดฟเดฒเต‡เด•เตเด•เต เด†เดตเดถเตเดฏเดฎเดพเดฏ เด†เด•เตเดธเดธเต เดจเตฝเด•เดพเดจเตเด‚ เดจเดฟเด™เตเด™เตพ เด•เตเดฑเดšเตเดšเต เดธเดฎเดฏเด‚ เดšเต†เดฒเดตเดดเดฟเด•เตเด•เต‡เดฃเตเดŸเดฟเดตเดฐเตเด‚. เด‡เดคเตเด•เต‚เดŸเดพเดคเต†, เด“เดฐเต‹ เดชเตเดจเดฐเดตเดฒเต‹เด•เดจ เดตเดฟเดทเดฏเด™เตเด™เตพเด•เตเด•เตเดฎเดพเดฏเดฟ เดจเดฟเด™เตเด™เตพ เดถเดฐเดฟเดฏเดพเดฏ retention.ms เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต, เด…เดคเตเดตเดดเดฟ เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เดตเต€เดฃเตเดŸเตเด‚ เด…เดฏเดฏเตโ€Œเด•เตเด•เดพเดจเตเด‚ เด…เดคเดฟเตฝ เดจเดฟเดจเตเดจเต เด…เดชเตเดฐเดคเตเดฏเด•เตเดทเดฎเดพเด•เดพเดคเดฟเดฐเดฟเด•เตเด•เดพเดจเตเด‚ เดธเดฎเดฏเดฎเตเดฃเตเดŸเต. เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดชเตเดคเดฟเดฏ เด“เดฐเต‹ เดธเต‡เดตเดจเดคเตเดคเดฟเดจเตเด‚ เดชเตเดฐเดพเดตเตผเดคเตเดคเดฟเด•เดฎเดพเด•เตเด•เดฒเตเด‚ เดชเตเดฐเดตเต‡เดถเดจ เด…เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเด‚ เด†เดตเตผเดคเตเดคเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.

เดฎเต†เดธเต‡เดœเต เดฑเต€เดชเตเดฐเต‹เดธเดธเดฟเด™เตเด™เดฟเดจเดพเดฏเดฟ เดจเดฎเตเด•เตเด•เต เดชเตŠเดคเตเดตเต† เดธเตเดชเตเดฐเดฟเด‚เด—เต เดธเด‚เดตเดฟเดงเดพเดจเด™เตเด™เดณเตเด‚ เดชเตเดฐเดคเตเดฏเต‡เด•เดฟเดšเตเดšเต เดธเตเดชเตเดฐเดฟเด‚เด—เต-เด•เดพเดซเตเด•เดฏเตเด‚ เดŽเดจเตเดคเตŠเด•เตเด•เต†เดฏเดพเดฃเต เดจเตฝเด•เตเดจเตเดจเดคเต เดŽเดจเตเดจเต เดจเต‹เด•เตเด•เดพเด‚. เดธเตเดชเตเดฐเดฟเด‚เด—เต-เด•เดพเดซเตเด•เดฏเตเด•เตเด•เต เดธเตเดชเตเดฐเดฟเด‚เด—เต-เดฑเดฟเดŸเตเดฐเดฟเดฏเดฟเตฝ เด’เดฐเต เดŸเตเดฐเดพเตปเดธเดฟเดฑเตเดฑเต€เดตเต เดกเดฟเดชเตปเดกเตปเดธเดฟ เด‰เดฃเตเดŸเต, เด‡เดคเต เดตเตเดฏเดคเตเดฏเดธเตเดค เดฌเดพเด•เตเด•เตเด“เดซเต เดชเต‹เดณเดฟเดธเดฟเด•เตพ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดธเด‚เด—เตเดฐเดนเด™เตเด™เตพ เดจเตฝเด•เตเดจเตเดจเต. เด‡เดคเต เดคเดฟเด•เดšเตเดšเตเด‚ เดตเดดเด•เตเด•เดฎเตเดณเตเดณ เด‰เดชเด•เดฐเดฃเดฎเดพเดฃเต, เดŽเดจเตเดจเดพเตฝ เด…เดคเดฟเดจเตเดฑเต† เดชเตเดฐเดงเดพเดจ เดชเต‹เดฐเดพเดฏเตเดฎ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดฎเต†เดฎเตเดฎเดฑเดฟเดฏเดฟเตฝ เดตเต€เดฃเตเดŸเตเด‚ เด…เดฏเดฏเตโ€Œเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเดคเดพเดฃเต. เด‡เดคเดฟเดจเตผเดคเตเดฅเด‚, เด’เดฐเต เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเต เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดจ เดชเดฟเดถเด•เต เด•เดพเดฐเดฃเด‚ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดชเตเดจเดฐเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเต, เดฑเต€เดชเตเดฐเต‹เดธเดธเต เดšเต†เดฏเตเดฏเดพเตป เดถเต‡เดทเดฟเด•เตเด•เตเดจเตเดจ เดŽเดฒเตเดฒเดพ เดธเดจเตเดฆเต‡เดถเด™เตเด™เดณเตเด‚ เดจเดทเตโ€ŒเดŸเดชเตเดชเต†เดŸเตเดจเตเดจเดคเดฟเดจเต เด‡เดŸเดฏเดพเด•เตเด•เตเด‚ เดŽเดจเตเดจเดพเดฃเต. เดˆ เดชเต‹เดฏเดฟเดจเตเดฑเต เดžเด™เตเด™เดณเตเดŸเต† เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเต เดจเดฟเตผเดฃเดพเดฏเด•เดฎเดพเดฏเดคเดฟเดจเดพเตฝ, เดžเด™เตเด™เตพ เด…เดคเต เด•เต‚เดŸเตเดคเตฝ เดชเดฐเดฟเด—เดฃเดฟเดšเตเดšเดฟเดฒเตเดฒ.

เดธเตเดชเตเดฐเดฟเด‚เด—เต-เด•เดพเดซเตเด• เดคเดจเตเดจเต† เด•เดฃเตเดŸเต†เดฏเตเดจเตผเด…เดตเต†เดฏเตผ เดŽเดฑเตผเดนเดพเตปเดกเตโ€Œเดฒเดฑเดฟเดจเตเดฑเต† เดจเดฟเดฐเดตเดงเดฟ เดจเดฟเตผเดตเตเดตเดนเดฃเด™เตเด™เตพ เดจเตฝเด•เตเดจเตเดจเต, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต SeekToCurrentErrorHandler, เด’เดฐเต เดชเดฟเดถเด•เตเดฃเตเดŸเดพเดฏเดพเตฝ เด“เดซเตโ€Œเดธเต†เดฑเตเดฑเต เดฎเดพเดฑเตเดฑเดพเดคเต† เดคเดจเตเดจเต† เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดธเดจเตเดฆเต‡เดถเด‚ เดชเดฟเดจเตเดจเต€เดŸเต เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚. เดธเตเดชเตเดฐเดฟเด‚เด—เต-เด•เดพเดซเตเด• 2.3 เดชเดคเดฟเดชเตเดชเดฟเตฝ เดคเตเดŸเด™เตเด™เดฟ, BackOffPolicy เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เดพเตป เดธเดพเดงเดฟเดšเตเดšเต.

เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดชเตเดจเดฐเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต† เด…เดคเดฟเดœเต€เดตเดฟเด•เตเด•เดพเตป เดฑเต€เดชเตเดฐเต‹เดธเดธเต เดšเต†เดฏเตเดค เดธเดจเตเดฆเต‡เดถเด™เตเด™เดณเต† เดˆ เดธเดฎเต€เดชเดจเด‚ เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต, เดชเด•เตเดทเต‡ เด‡เดชเตเดชเต‹เดดเตเด‚ DLQ เดธเด‚เดตเดฟเดงเดพเดจเด‚ เด‡เดฒเตเดฒ. 2019 เดจเตเดฑเต† เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเตฝ เดžเด™เตเด™เตพ เดˆ เด“เดชเตเดทเตป เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต, DLQ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒเต†เดจเตเดจเต เดถเตเดญเดพเดชเตเดคเดฟเดตเดฟเดถเตเดตเดพเดธเดคเตเดคเต‹เดŸเต† เดตเดฟเดถเตเดตเดธเดฟเดšเตเดšเต (เดžเด™เตเด™เตพ เดญเดพเด—เตเดฏเดตเดพเดจเดพเดฏเดฟเดฐเตเดจเตเดจเต, เด…เดคเตเดคเดฐเด‚ เด’เดฐเต เดฑเต€เดชเตเดฐเต‹เดธเดธเดฟเด‚เด—เต เดธเดฟเดธเตเดฑเตเดฑเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดšเตเดšเต เด•เตเดฑเดšเตเดšเต เดฎเดพเดธเด™เตเด™เตพเด•เตเด•เต เดถเต‡เดทเด‚ เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เด‡เดคเต เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ). เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด• เดชเดฟเดถเด•เตเด•เตพ SeekToCurrentErrorHandler เดคเต€เดชเดฟเดŸเตเดคเตเดคเดคเตเดคเดฟเดจเต เด•เดพเดฐเดฃเดฎเดพเดฏเดฟ. เดถเต‡เดทเดฟเด•เตเด•เตเดจเตเดจ เดชเดฟเดถเด•เตเด•เตพ เดฒเต‹เด—เดฟเตฝ เดชเตเดฐเดฟเดจเตเดฑเต เดšเต†เดฏเตโ€Œเดคเต, เด…เดคเดฟเดจเตเดฑเต† เดซเดฒเดฎเดพเดฏเดฟ เด’เดฐเต เด“เดซเตโ€Œเดธเต†เดฑเตเดฑเต เดฒเดญเดฟเดšเตเดšเต, เด…เดŸเตเดคเตเดค เดธเดจเตเดฆเต‡เดถเดคเตเดคเดฟเตฝ เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เต เดคเตเดŸเตผเดจเตเดจเต.

เด…เดตเดธเดพเดจ เดคเต€เดฐเตเดฎเดพเดจเด‚

SeekToCurrentErrorHandler เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟเดฏเตเดณเตเดณ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตฝ เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เดตเต€เดฃเตเดŸเตเด‚ เด…เดฏเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดžเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เดธเด‚เดตเดฟเดงเดพเดจเด‚ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เดณเต† เดชเตเดฐเต‡เดฐเดฟเดชเตเดชเดฟเดšเตเดšเต.

เด’เดจเตเดจเดพเดฎเดคเดพเดฏเดฟ, เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ เด…เดจเตเดญเดตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดจเตเด‚ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดฒเต‹เดœเดฟเด•เตเด•เดจเตเดธเดฐเดฟเดšเตเดšเต เด…เดคเต เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เดพเดจเตเด‚ เดžเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเดšเตเดšเต. เด’เดฐเต เดฒเต€เดจเดฟเดฏเตผ เดฒเต‹เดœเดฟเด•เต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดพเดฏเดฟ, เดตเต€เดฃเตเดŸเตเด‚ เดถเตเดฐเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดคเดจเตเดคเตเดฐเด‚ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏ เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดธเดฎเดฏเดคเตเดคเต‡เด•เตเด•เต เดชเตเดคเดฟเดฏ เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เดตเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเดคเต เดจเดฟเตผเดคเตเดคเตเดจเตเดจเดคเดพเดฃเต เด‰เดšเดฟเดคเด‚. เดฎเดฑเตเดฑเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพเด•เตเด•เต, เดตเต€เดฃเตเดŸเตเด‚ เดถเตเดฐเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดคเดจเตเดคเตเดฐเด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจ เด’เดฐเตŠเดฑเตเดฑ เดชเต‹เดฏเดฟเดจเตเดฑเต เดตเต‡เดฃเดฎเต†เดจเตเดจเต เดžเดพเตป เด†เด—เตเดฐเดนเดฟเดšเตเดšเต. เด•เต‚เดŸเดพเดคเต†, เดˆ เด’เดฐเตŠเดฑเตเดฑ เดชเต‹เดฏเดฟเดจเตเดฑเดฟเดจเต เดฐเดฃเตเดŸเต เดธเดฎเต€เดชเดจเด™เตเด™เตพเด•เตเด•เตเด‚ DLQ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดค เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚.

เด’เดฐเต เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด• เดชเดฟเดถเด•เต เดธเด‚เดญเดตเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เด…เดŸเตเดคเตเดค เด‡เดŸเดตเต‡เดณ เดตเต€เดฃเตเดŸเต†เดŸเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดฏเดพเดฏ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดฟเตฝ เดตเต€เดฃเตเดŸเตเด‚ เดถเตเดฐเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดคเดจเตเดคเตเดฐเด‚ เดคเดจเตเดจเต† เดธเด‚เดญเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เดฃเด‚.

เด’เดฐเต เดฒเต€เดจเดฟเดฏเตผ เดฒเต‹เดœเดฟเด•เต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดพเดฏเดฟ เด‰เดชเดญเต‹เด•เตเดคเดพเดตเดฟเดจเต† เดจเดฟเตผเดคเตเดคเตเดจเตเดจเต

เดธเตเดชเตเดฐเดฟเด‚เด—เต-เด•เดพเดซเตเด•เดฏเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด‰เดชเดญเต‹เด•เตเดคเดพเดตเดฟเดจเต† เดคเดŸเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด•เต‹เดกเต เด‡เดคเตเดชเต‹เดฒเต†เดฏเดพเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚:

public void pauseListenerContainer(MessageListenerContainer listenerContainer, 
                                   Instant retryAt) {
        if (nonNull(retryAt) && listenerContainer.isRunning()) {
            listenerContainer.stop();
            taskScheduler.schedule(() -> listenerContainer.start(), retryAt);
            return;
        }
        // to DLQ
    }

เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ, MessageListenerContainer เด‡เดชเตเดชเต‹เดดเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ เด…เดคเต เดชเตเดจเดฐเดพเดฐเด‚เดญเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เดธเดฎเดฏเดฎเดพเดฃเต retryAt. TaskScheduler-เตฝ เดธเดฎเดพเดฐเด‚เดญเดฟเดšเตเดš เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดคเตเดฐเต†เดกเดฟเตฝ เดตเต€เดฃเตเดŸเตเด‚ เดธเดฎเดพเดฐเด‚เดญเด‚ เดธเด‚เดญเดตเดฟเด•เตเด•เตเด‚, เด‡เดคเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเต เดธเตเดชเตเดฐเดฟเด‚เด—เต เดตเดดเดฟเดฏเดพเดฃเต.

เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดฐเต€เดคเดฟเดฏเดฟเตฝ เดžเด™เตเด™เตพ retryAt เดฎเต‚เดฒเตเดฏเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเต:

  1. เดฑเต€-เด•เต‹เตพ เด•เต—เดฃเตเดŸเดฑเดฟเดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเด‚ เดจเต‹เด•เตเด•เตเดจเตเดจเต.
  2. เด•เตŒเดฃเตเดŸเตผ เดฎเต‚เดฒเตเดฏเดคเตเดคเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ, เดตเต€เดฃเตเดŸเตเด‚ เดถเตเดฐเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดคเดจเตเดคเตเดฐเดคเตเดคเดฟเดฒเต† เดจเดฟเดฒเดตเดฟเดฒเต† เด•เดพเดฒเดคเดพเดฎเดธเด‚ เด‡เดŸเดตเต‡เดณ เดคเดฟเดฐเดฏเตเดจเตเดจเต. เดคเดจเตเดคเตเดฐเด‚ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดฟเตฝ เดคเดจเตเดจเต† เดชเตเดฐเด–เตเดฏเดพเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต; เด…เดคเต เดธเด‚เดญเดฐเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพ JSON เดซเต‹เตผเดฎเดพเดฑเตเดฑเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต.
  3. JSON เด…เดฑเต‡เดฏเดฟเตฝ เด•เดฃเตเดŸเต†เดคเตเดคเดฟเดฏ เด‡เดŸเดตเต‡เดณเดฏเดฟเตฝ เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เต เด†เดตเตผเดคเตเดคเดฟเด•เตเด•เต‡เดฃเตเดŸ เดธเต†เด•เตเด•เตปเดกเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. retryAt-เดจเตเดณเตเดณ เดฎเต‚เดฒเตเดฏเด‚ เดฐเต‚เดชเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเต เดˆ เดธเต†เด•เตเด•เดจเตเดฑเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เดจเดฟเดฒเดตเดฟเดฒเต† เดธเดฎเดฏเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดšเต‡เตผเดคเตเดคเต.
  4. เด‡เดŸเดตเต‡เดณ เด•เดฃเตเดŸเต†เดคเตเดคเดฟเดฏเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, retryAt-เดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเด‚ เด…เดธเดพเดงเตเดตเดพเดฃเต, เดธเตเดตเดฎเต‡เดงเดฏเดพ เดชเดพเดดเตโ€Œเดธเดฟเด‚เด—เดฟเดจเดพเดฏเดฟ เดธเดจเตเดฆเต‡เดถเด‚ DLQ-เดฒเต‡เด•เตเด•เต เด…เดฏเดฏเตโ€Œเด•เตเด•เตเด‚.

เดˆ เดธเดฎเต€เดชเดจเดคเตเดคเดฟเดฒเต‚เดŸเต†, เดจเดฟเดฒเดตเดฟเตฝ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจ เด“เดฐเต‹ เดธเดจเตเดฆเต‡เดถเดคเตเดคเดฟเดจเตเด‚ เด†เดตเตผเดคเตเดคเดฟเดšเตเดšเตเดณเตเดณ เด•เต‹เดณเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เตเด• เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เดถเต‡เดทเดฟเด•เตเด•เตเดจเตเดจเดคเต, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดฎเต†เดฎเตเดฎเดฑเดฟเดฏเดฟเตฝ. เด’เดฐเต เดฒเต€เดจเดฟเดฏเตผ เดฒเต‹เดœเดฟเด•เต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเต เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เต เดฎเตŠเดคเตเดคเดคเตเดคเดฟเตฝ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเดพเดคเตเดคเดคเดฟเดจเดพเตฝ, เดˆ เดธเดฎเต€เดชเดจเดคเตเดคเดฟเดจเต เดฑเต€เดŸเตเดฐเดฟ เด•เต—เดฃเตเดŸเต เดฎเต†เดฎเตเดฎเดฑเดฟเดฏเดฟเตฝ เดธเต‚เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเดคเต เดจเดฟเตผเดฃเดพเดฏเด•เดฎเดฒเตเดฒ. เดธเตเดชเตเดฐเดฟเด‚เด—เต-เดฑเดฟเดŸเตเดฐเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟ, เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดชเตเดจเดฐเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเต เดŽเดฒเตเดฒเดพ เดธเดจเตเดฆเต‡เดถเด™เตเด™เดณเตเด‚ เดจเดทเตโ€ŒเดŸเดชเตเดชเต†เดŸเตเดจเตเดจเดคเดฟเดจเต เด•เดพเดฐเดฃเดฎเดพเด•เดฟเดฒเตเดฒ, เดชเด•เตเดทเต‡ เดคเดจเตเดคเตเดฐเด‚ เดชเตเดจเดฐเดพเดฐเด‚เดญเดฟเด•เตเด•เตเด‚.

เดˆ เดธเดฎเต€เดชเดจเด‚ เดฌเดพเดนเตเดฏ เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดฒเต‹เดกเต เดŽเดŸเตเด•เตเด•เดพเตป เดธเดนเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเต, เดตเดณเดฐเต† เด•เดจเดคเตเดค เดฒเต‹เดกเต เด•เดพเดฐเดฃเด‚ เด‡เดคเต เดฒเดญเตเดฏเดฎเดฒเตเดฒเดพเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚. เดฎเดฑเตเดฑเตŠเดฐเต เดตเดฟเดงเดคเตเดคเดฟเตฝ เดชเดฑเดžเตเดžเดพเตฝ, เดฑเต€เดชเตเดฐเต‹เดธเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดชเตเดฑเดฎเต‡, เดžเด™เตเด™เตพ เดชเดพเดฑเตเดฑเต‡เตบ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟ เดธเตผเด•เตเดฏเต‚เดŸเตเดŸเต เดฌเตเดฐเต‡เด•เตเด•เตผ.

เดžเด™เตเด™เดณเตเดŸเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดชเดฟเดถเด•เต เดชเดฐเดฟเดงเดฟ 1 เดฎเดพเดคเตเดฐเดฎเดพเดฃเต, เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด• เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดคเด•เดฐเดพเดฑเตเด•เตพ เด•เดพเดฐเดฃเด‚ เดธเดฟเดธเตเดฑเตเดฑเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเดฏ เดธเดฎเดฏเด‚ เด•เตเดฑเดฏเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดšเต†เดฑเดฟเดฏ เดฒเต‡เดฑเตเดฑเตปเดธเดฟ เด‡เดŸเดตเต‡เดณเด•เดณเตเดณเตเดณ เดตเดณเดฐเต† เด—เตเดฐเดพเดจเตเดฒเดพเตผ เดฑเต€เดŸเตเดฐเดฟ เดธเตเดŸเตเดฐเดพเดฑเตเดฑเดœเดฟ เดžเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เด‡เดคเต เดŽเดฒเตเดฒเดพ เด—เตเดฐเต‚เดชเตเดชเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพเด•เตเด•เตเด‚ เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเด•เดฃเดฎเต†เดจเตเดจเดฟเดฒเตเดฒ, เด…เดคเดฟเดจเดพเตฝ เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเตเดฑเต† เดธเดตเดฟเดถเต‡เดทเดคเด•เดณเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ เดชเดฟเดถเด•เต เดชเดฐเดฟเดงเดฟเดฏเตเด‚ เด‡เดŸเดตเต‡เดณ เดฎเต‚เดฒเตเดฏเดตเตเด‚ เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดฌเดจเตเดงเด‚ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เดฃเด‚.

เดจเต‹เตบ-เดกเดฟเดฑเตเดฑเตผเดฎเดฟเดจเดฟเดธเตเดฑเตเดฑเดฟเด•เต เดฒเต‹เดœเดฟเด•เต เด‰เดณเตเดณ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป

RETRY_AT เดธเดฎเดฏเด‚ เดŽเดคเตเดคเตเดฎเตเดชเต‹เตพ DESTINATION เดตเดฟเดทเดฏเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดตเต€เดฃเตเดŸเตเด‚ เด…เดฏเดฏเตโ€Œเด•เตเด•เตเดจเตเดจ เด…เดคเตเดคเดฐเด‚ เด’เดฐเต เด…เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดฟเดฒเต‡เด•เตเด•เต (Retryer) เด’เดฐเต เดธเดจเตเดฆเต‡เดถเด‚ เด…เดฏเดฏเตโ€Œเด•เตเด•เตเดจเตเดจ เด•เต‹เดกเดฟเดจเตเดฑเต† เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃเด‚ เด‡เดคเดพ:


public <K, V> void retry(ConsumerRecord<K, V> record, String retryToTopic, 
                         Instant retryAt, String counter, String groupId, Exception e) {
        Headers headers = ofNullable(record.headers()).orElse(new RecordHeaders());
        List<Header> arrayOfHeaders = 
            new ArrayList<>(Arrays.asList(headers.toArray()));
        updateHeader(arrayOfHeaders, GROUP_ID, groupId::getBytes);
        updateHeader(arrayOfHeaders, DESTINATION, retryToTopic::getBytes);
        updateHeader(arrayOfHeaders, ORIGINAL_PARTITION, 
                     () -> Integer.toString(record.partition()).getBytes());
        if (nonNull(retryAt)) {
            updateHeader(arrayOfHeaders, COUNTER, counter::getBytes);
            updateHeader(arrayOfHeaders, SEND_TO, "retry"::getBytes);
            updateHeader(arrayOfHeaders, RETRY_AT, retryAt.toString()::getBytes);
        } else {
            updateHeader(arrayOfHeaders, REASON, 
                         ExceptionUtils.getStackTrace(e)::getBytes);
            updateHeader(arrayOfHeaders, SEND_TO, "backout"::getBytes);
        }
        ProducerRecord<K, V> messageToSend =
            new ProducerRecord<>(retryTopic, null, null, record.key(), record.value(), arrayOfHeaders);
        kafkaTemplate.send(messageToSend);
    }

เดคเดฒเด•เตเด•เต†เดŸเตเดŸเตเด•เดณเดฟเตฝ เดงเดพเดฐเดพเดณเด‚ เดตเดฟเดตเดฐเด™เตเด™เตพ เด•เตˆเดฎเดพเดฑเตเดจเตเดจเดคเดพเดฏเดฟ เด‰เดฆเดพเดนเดฐเดฃเด‚ เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเต. RETRY_AT เดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเด‚ เด•เตบเดธเตเดฏเต‚เดฎเตผ เดธเตเดฑเตเดฑเต‹เดชเตเดชเดฟเดฒเต‚เดŸเต† เดตเต€เดฃเตเดŸเตเด‚ เดถเตเดฐเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดธเดฎเดพเดจเดฎเดพเดฏ เดฐเต€เดคเดฟเดฏเดฟเตฝ เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเต. DESTINATION, RETRY_AT เดŽเดจเตเดจเดฟเดตเดฏเตเด•เตเด•เต เดชเตเดฑเดฎเต‡ เดžเด™เตเด™เตพ เด•เดŸเดจเตเดจเตเดชเต‹เด•เตเดจเตเดจเต:

  • GROUP_ID, เดฎเดพเดจเตเดตเตฝ เดตเดฟเดถเด•เดฒเดจเดคเตเดคเดฟเดจเตเด‚ เดฒเดณเดฟเดคเดฎเดพเดฏ เดคเดฟเดฐเดฏเดฒเดฟเดจเตเด‚ เดžเด™เตเด™เตพ เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เด—เตเดฐเต‚เดชเตเดชเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต.
  • ORIGINAL_PARTITION เดตเต€เดฃเตเดŸเตเด‚ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เด’เดฐเต‡ เด‰เดชเดญเต‹เด•เตเดคเดพเดตเดฟเดจเต† เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เตเด•. เดˆ เดชเดฐเดพเดฎเต€เดฑเตเดฑเตผ เด…เดธเดพเดงเตเดตเดพเด•เดพเด‚, เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ เดฏเดฅเดพเตผเดคเตเดฅ เดธเดจเตเดฆเต‡เดถเดคเตเดคเดฟเดจเตเดฑเต† record.key() เด•เต€ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดคเดฟเดฏ เดชเดพเตผเดŸเตเดŸเต€เดทเตป เดฒเดญเดฟเด•เตเด•เตเด‚.
  • เดตเต€เดฃเตเดŸเตเด‚ เดถเตเดฐเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดคเดจเตเดคเตเดฐเด‚ เดชเดฟเดจเตเดคเตเดŸเดฐเดพเตป COUNTER เดฎเต‚เดฒเตเดฏเด‚ เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตโ€Œเดคเต.
  • RETRY_AT-เตฝ เดŽเดคเตเดคเตเดฎเตเดชเต‹เตพ เดตเต€เดฃเตเดŸเตเด‚ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดธเดจเตเดฆเต‡เดถเด‚ เด…เดฏเดšเตเดšเดคเดพเดฃเต‹ เด…เดคเต‹ DLQ-เตฝ เดธเตเดฅเดพเดชเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต‹ เดŽเดจเตเดจเต เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจ เดธเตเดฅเดฟเดฐเดพเด™เตเด•เดฎเดพเดฃเต SEND_TO.
  • เด•เดพเดฐเดฃเด‚ - เดธเดจเตเดฆเต‡เดถ เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เต เดคเดŸเดธเตเดธเดชเตเดชเต†เดŸเตเดŸเดคเดฟเดจเตเดฑเต† เด•เดพเดฐเดฃเด‚.

PostgreSQL-เตฝ เดตเต€เดฃเตเดŸเตเด‚ เด…เดฏเดฏเตโ€Œเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดธเตเดตเดฎเต‡เดงเดฏเดพ เดชเดพเดดเตโ€Œเดธเดฟเด‚เด—เต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดฎเตเดณเตเดณ เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เดฑเต€เดŸเตเดฐเดฏเตผ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด’เดฐเต เดŸเตˆเดฎเตผ, RETRY_AT เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจ เด’เดฐเต เดŸเดพเดธเตโ€Œเด•เต เด†เดฐเด‚เดญเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด•เต€ record.key() เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต DESTINATION เดตเดฟเดทเดฏเดคเตเดคเดฟเดจเตเดฑเต† ORIGINAL_PARTITION เดชเดพเตผเดŸเตเดŸเต€เดทเดจเดฟเดฒเต‡เด•เตเด•เต เดคเดฟเดฐเดฟเด•เต† เด…เดฏเดฏเตเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เด…เดฏเดšเตเดšเตเด•เดดเดฟเดžเตเดžเดพเตฝ, PostgreSQL-เตฝ เดจเดฟเดจเตเดจเต เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดชเตเดชเต†เดŸเตเด‚. REST API เดตเดดเดฟ Retryer-เดฎเดพเดฏเดฟ เดธเด‚เดตเดฆเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ UI-เดฒเดพเดฃเต เดธเดจเตเดฆเต‡เดถเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดฎเต‡เดงเดฏเดพ เดชเดพเดดเตโ€Œเดธเดฟเด‚เด—เต เดจเดŸเด•เตเด•เตเดจเตเดจเดคเต. DLQ-เตฝ เดจเดฟเดจเตเดจเต เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เดตเต€เดฃเตเดŸเตเด‚ เด…เดฏเดฏเตโ€Œเด•เตเด•เตเด•เดฏเต‹ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเด•เดฏเต‹ เดšเต†เดฏเตเดฏเตเด•, เดชเดฟเดถเด•เต เดตเดฟเดตเดฐเด™เตเด™เตพ เด•เดพเดฃเตเด•, เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เดคเดฟเดฐเดฏเตเด• เดŽเดจเตเดจเดฟเดตเดฏเดพเดฃเต เด‡เดคเดฟเดจเตเดฑเต† เดชเตเดฐเดงเดพเดจ เดธเดตเดฟเดถเต‡เดทเดคเด•เตพ, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต เดชเดฟเดถเด•เต เดชเต‡เดฐเต.

เดžเด™เตเด™เดณเตเดŸเต† เด•เตเดฒเดธเตเดฑเตเดฑเดฑเตเด•เดณเดฟเตฝ เด†เด•เตโ€Œเดธเดธเต เด•เตบเดŸเตเดฐเต‹เตพ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเตฝ, เดฑเต€เดŸเตเดฐเดฏเตผ เด•เต‡เตพเด•เตเด•เตเดจเตเดจ เดตเดฟเดทเดฏเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เด…เดงเดฟเด•เดฎเดพเดฏเดฟ เด†เด•เตโ€Œเดธเดธเต เด…เดญเตเดฏเตผเดคเตเดฅเดฟเด•เตเด•เตเด•เดฏเตเด‚ DESTINATION เดตเดฟเดทเดฏเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดŽเดดเตเดคเดพเตป เดฑเต€เดŸเตเดฐเดฏเดฑเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เด‡เดคเต เด…เดธเต—เด•เดฐเตเดฏเดฎเดพเดฃเต, เดชเด•เตเดทเต‡, เด‡เดจเตเดฑเตผเดตเต†เตฝ เดŸเต‹เดชเตเดชเดฟเด•เตเด•เต เดธเดฎเต€เดชเดจเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟ, เด‡เดคเต เดฎเดพเดจเต‡เดœเต เดšเต†เดฏเตเดฏเดพเตป เดžเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ DLQ, UI เด‰เดฃเตเดŸเต.

เด’เดฐเต เด‡เตปเด•เดฎเดฟเด‚เด—เต เดตเดฟเดทเดฏเด‚ เดจเดฟเดฐเดตเดงเดฟ เดตเตเดฏเดคเตเดฏเดธเตเดค เด‰เดชเดญเต‹เด•เตเดคเตƒ เด—เตเดฐเต‚เดชเตเดชเตเด•เตพ เดตเดพเดฏเดฟเด•เตเด•เตเดจเตเดจ เดธเดจเตเดฆเตผเดญเด™เตเด™เดณเตเดฃเตเดŸเต, เด…เดตเดฐเตเดŸเต† เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดตเตเดฏเดคเตเดฏเดธเตเดค เดฏเตเด•เตเดคเดฟเด•เตพ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเต. เดˆ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เดณเดฟเดฒเตŠเดจเตเดจเดฟเดจเต เดฑเต€เดŸเตเดฐเดฏเตผ เดตเดดเดฟ เด’เดฐเต เดธเดจเตเดฆเต‡เดถเด‚ เดตเต€เดฃเตเดŸเตเด‚ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดฎเดฑเตเดฑเตŠเดจเตเดจเดฟเดจเตเดฑเต† เดกเตเดฏเต‚เดชเตเดฒเดฟเด•เตเด•เต‡เดฑเตเดฑเดฟเดจเต เด•เดพเดฐเดฃเดฎเดพเด•เตเด‚. เด‡เดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเดฐเดฟเดฐเด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดตเต€เดฃเตเดŸเตเด‚ เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เดฟเดจเดพเดฏเดฟ เดžเด™เตเด™เตพ เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดตเดฟเดทเดฏเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต. เด‡เตปเด•เดฎเดฟเด‚เด—เต, เดฑเต€เดŸเตเดฐเตˆ เดตเดฟเดทเดฏเด™เตเด™เตพ เด’เดฐเต‡ เด‰เดชเดญเต‹เด•เตเดคเดพเดตเดฟเดจเต เดฏเดพเดคเตŠเดฐเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเดตเตเดฎเดฟเดฒเตเดฒเดพเดคเต† เดตเดพเดฏเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚.

เด•เดพเดซเตเด•เดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดฒเดญเดฟเดšเตเดš เด‡เดตเดจเตเดฑเตเด•เตพ เดฑเต€เดชเตเดฐเต‹เดธเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต

เดกเดฟเดซเต‹เตพเดŸเตเดŸเดพเดฏเดฟ เดˆ เดธเดฎเต€เดชเดจเด‚ เดธเตผเด•เตเดฏเต‚เดŸเตเดŸเต เดฌเตเดฐเต‡เด•เตเด•เตผ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดค เดจเตฝเด•เตเดจเตเดจเดฟเดฒเตเดฒ, เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚ เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดฟเตฝ เดšเต‡เตผเด•เตเด•เดพเดตเตเดจเตเดจเดคเดพเดฃเต เดธเตเดชเตเดฐเดฟเด‚เด—เต-เด•เตเดฒเต—เดกเต-เดจเต†เดฑเตเดฑเตเดซเตเดฒเดฟเด•เตเดธเต เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดชเตเดคเดฟเดฏเดคเต เดธเตเดชเตเดฐเดฟเด‚เด—เต เด•เตเดฒเต—เดกเต เดธเตผเด•เตเดฏเต‚เดŸเตเดŸเต เดฌเตเดฐเต‡เด•เตเด•เตผ, เดฌเดพเดนเตเดฏ เดธเต‡เดตเดจเด™เตเด™เตพ เดตเดฟเดณเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจ เดธเตเดฅเดฒเด™เตเด™เดณเต† เด‰เดšเดฟเดคเดฎเดพเดฏ เดธเด‚เด—เตเดฐเดนเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เต เดชเตŠเดคเดฟเดฏเตเดจเตเดจเต. เด•เต‚เดŸเดพเดคเต†, เด’เดฐเต เดคเดจเตเดคเตเดฐเด‚ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดจเตเดจเดคเต เดธเดพเดงเตเดฏเดฎเดพเด•เตเด‚ เดฌเตพเด•เตเด•เตเดนเต†เดกเต เดชเดพเดฑเตเดฑเต‡เตบ, เด…เดคเต เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเด•เตเด‚. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดธเตเดชเตเดฐเดฟเด‚เด—เต-เด•เตเดฒเต—เดกเต-เดจเต†เดฑเตเดฑเตเดซเตเดฒเดฟเด•เตเดธเดฟเตฝ เด‡เดคเต เด’เดฐเต เดคเตเดฐเต†เดกเต เดชเต‚เตพ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดธเต†เดฎเดพเดซเต‹เตผ เด†เด•เดพเด‚.

เดคเต€เดฐเตเดฎเดพเดจเด‚

เดคเตฝเดซเดฒเดฎเดพเดฏเดฟ, เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดฌเดพเดนเตเดฏ เดธเดฟเดธเตเดฑเตเดฑเด‚ เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด•เดฎเดพเดฏเดฟ เดฒเดญเตเดฏเดฎเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดธเดจเตเดฆเต‡เดถ เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เต เด†เดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเดฃเตเดŸเต.

เด’เดฐเต‡ เด•เดพเดซเตเด• เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดฌเดพเดนเตเดฏ เดธเด‚เดตเดฟเดงเดพเดจเด™เตเด™เตพเด•เตเด•เต เด…เดตเดฏเตเดŸเต† เดญเดพเด—เดคเตเดคเต เด•เดพเดฐเตเดฏเดฎเดพเดฏ เดฎเดพเดฑเตเดฑเด™เตเด™เดณเดฟเดฒเตเดฒเดพเดคเต† เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚ เดŽเดจเตเดจเดคเดพเดฃเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเดฑเต† เดชเตเดฐเดงเดพเดจ เดจเต‡เดŸเตเดŸเด™เตเด™เดณเดฟเดฒเตŠเดจเตเดจเต! เด…เดคเตเดคเดฐเดฎเตŠเดฐเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเต เดตเต€เดฃเตเดŸเตเด‚ เดถเตเดฐเดฎเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เดตเดฟเดทเดฏเด‚ เด†เด•เตเดธเดธเต เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เด•เตเดฑเดšเตเดšเต เด•เดพเดซเตเด• เดคเดฒเด•เตเด•เต†เดŸเตเดŸเตเด•เตพ เดชเต‚เดฐเดฟเดชเตเดชเดฟเดšเตเดšเต เดฑเต€เดŸเตเดฐเดฏเดฑเดฟเดจเต เด’เดฐเต เดธเดจเตเดฆเต‡เดถเด‚ เด…เดฏเดฏเตเด•เตเด•เดพเดจเตเด‚ เดฎเดพเดคเตเดฐเดฎเต‡ เด†เดตเดถเตเดฏเดฎเตเดณเตเดณเต‚. เด…เดงเดฟเด• เด…เดŸเดฟเดธเตเดฅเดพเดจ เดธเต—เด•เดฐเตเดฏเด™เตเด™เดณเตŠเดจเตเดจเตเด‚ เด‰เดฏเตผเดคเตเดคเต‡เดฃเตเดŸ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ. เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดฑเต€เดŸเตเดฐเดฏเดฑเดฟเดฒเต‡เด•เตเด•เตเด‚ เดคเดฟเดฐเดฟเดšเตเดšเตเด‚ เด•เตˆเดฎเดพเดฑเตเดฑเด‚ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจ เดธเดจเตเดฆเต‡เดถเด™เตเด™เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เด•เตเดฑเดฏเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดžเด™เตเด™เตพ เดฒเต€เดจเดฟเดฏเตผ เดฒเต‹เดœเดฟเด•เตเด•เดฟเดฒเตเดณเตเดณ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดคเดฟเดฐเดฟเดšเตเดšเดฑเดฟเดฏเตเด•เดฏเตเด‚ เด…เดต เด•เตบเดธเตเดฏเต‚เดฎเตผ เดธเตเดฑเตเดฑเต‹เดชเตเดชเดฟเดฒเต‚เดŸเต† เดตเต€เดฃเตเดŸเตเด‚ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดคเต.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•