选举服务

未匹配的标注

选举服务

限制只能单个节点运行的服务

启用

修改main函数,添加内容

import (
   "github.com/go-home-admin/home/app/election"func main() {
    app := providers.NewApp()

    app.Run([]constraint.KernelServer{
        election.GetServer(func() {
            logrus.Info("我是老大")
            logrus.Info("我才可以启动定时服务")
        }),
        // http服务
        http.GetServer(),
        // Job消费服务
        queues.GetServer(),
    })
}

机制

利用redis锁实现排斥同时启动服务,如果选举出来后,主节点会保持心跳占用锁,如果主动关闭,那么会触发广播信息,其他节点会立刻重新选举。

没有收到广播时候,其他节点也会按默认值60秒查询锁是否被释放。

项目地址 通用工具

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 查看所有版本


暂无话题~