Retry و Dead-Letter Queue در NATS JetStream با Go
در مقالهی قبل یک Publisher و Worker ساده روی JetStream ساختیم. اما Workerِ آن مقاله فرض میکرد پردازش همیشه موفق است. در عمل پیامهایی هستند که هر بار fail میشوند. اگر کاری نکنیم، یا بینهایت تکرار میشوند یا گم میشوند. در این مقاله سه چیز را اضافه میکنیم: محدود کردن تعداد تلاشها با MaxDeliver فاصلهی بین تلاشها با BackOff و NakWithDelay فرستادن پیام «سوخته» به یک صف dead-letter همهی رفتارهای زیر را با یک سرور NATS تعبیهشده در Go (با JetStream) و کتابخانهی nats.go آزمایش کردهام و خروجیها از همان آزمایشاند. ...