---

title: NATS JetStream 持久消费者与 Ack 重试策略实战

keywords: JetStream, durable, pull consumer, manualAck, ack policy, max-deliver

description: 使用 JetStream 创建流与持久消费者,示例包含手动确认与最大投递次数,确保可靠处理与重试。

categories:

  • 文章资讯
  • 技术教程

---

创建流与持久消费者(CLI):

nats stream add ORDERS --subjects orders.* --storage file --retention limits --max-age 72h --replicas 1
nats consumer add ORDERS worker --filter orders.created --pull --ack explicit --max-deliver 5

Node.js 订阅处理(手动确认):

import { connect } from 'nats'
const nc = await connect({ servers: 'nats://127.0.0.1:4222' })
const js = nc.jetstream()

const sub = await js.subscribe('orders.created', { durable: 'worker', manualAck: true })
for await (const m of sub) {
  try {
    const data = JSON.parse(m.string())
    // 业务处理...
    m.ack()
  } catch (e) {
    // 未 ack 将触发重投递,受 max-deliver 控制
  }
}

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部