一架梯子,一头程序猿,仰望星空!
Asynq任务队列教程 > 内容正文

高可用


本页面介绍如何配置asynq以利用Redis Sentinel来避免由于Redis故障而造成的停机时间。

先决条件

请阅读Redis Sentinel上的文档以了解该主题。

配置Asynq使用Redis Sentinels

配置asynqClientServer以使用Redis Sentinel非常简单。使用RedisFailoverClientOpt指定Redis主节点的名称和Redis Sentinel的地址。

var redis = &asynq.RedisFailoverClientOpt{
    MasterName:    "mymaster",
    SentinelAddrs: []string{"localhost:5000", "localhost:5001", "localhost:5002"},
}

然后将此客户端选项传递给NewClientNewBackground,以创建一个使用Redis Sentinels的实例。

client := asynq.NewClient(redis)

// ...

srv := asynq.NewServer(redis, asynq.Config{ Concurrency: 10 })

通过这种设置,当Redis主节点故障时,Sentinels将启动故障转移过程,并通知asynq新的主节点,后台任务处理将继续正常工作。