码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • zk分布式Job 实现的业务逻辑


    zk分布式Job

      1. 多个服务节点只允许其中⼀个主节点运⾏JOB任务。
      2. 当主节点挂掉后能⾃动切换主节点,继续执⾏JOB任务。
    • 实现细节
      • 用zkclien 或者其他第三方写一个程序,放在每一个分布式job对应的服务中, 用来选举一个job作为Master, 让他跑定时任务。 其业务实现逻辑如下
        1. 创建一个根目录zk持久节点 (比如就叫做 /JobMaster)
        2. 创建根目录下的序列化临时节点( 比如叫做 /MasterCandidate)为什么是临时节点呢? 因为如果有服务宕机了, zk的临时节点会删除, 那么根节点就可以感知(监听)他的变化, 切设置节点内容为candidateNode
          • 每个分布式job 对应的服务都会创建这么一个序列化临时节点。 比如有三个, 那么就会创建 /MasterCandidate001 , /MasterCandidate002, /MasterCandidate003
        3. 选举master
          • 用CAS的方式/ 或者用zk的方法监听根目录都是一样可以的, 不断监听根节点, 遍历根节点
            • 如果根节点中有值为 masterNode, 那么节点就作为master
            • 如果根节点没有值为masterNode, 那么用节点序列号最小的节点, 他的节点值由candidateNode 编程 masterNode
        4. 每个分布式锁应用, 在执行业务逻辑的时候, 先要判断自己是不是master(怎么判断? 方式有很多, 比如可以把服务自己的IP也写到zk里面比如“masterNode:192.168.122.111” 或者把 这个创建的临时序列化节点对应的全路劲记录在每一个应用中做对比也行), 如果是, 就执行, 如果不是, 就不执行
  • 相关阅读:
    使用Gstreamer+OpenCV实现两路图像数据混合拉流推流
    promise用法
    std::true_type和std::false_type
    《算法系列》之 数组
    C# 在Word中插入或删除分节符
    为什么创建 Redis 集群时会自动错开主从节点?
    gin 模版
    git 问题 之 git add 后直接git commit --amend导致合入了上一笔提交的解决办法
    [WPF]使用HLSL实现百叶窗动效
    OpenCV_Mat类对象常用的构造方法及初始化方法
  • 原文地址:https://blog.csdn.net/biubiubiubibibi/article/details/126789368
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号