当前位置: 首页 > news >正文

韩国化妆品网站模板常用的网络推广的方法有哪些

韩国化妆品网站模板,常用的网络推广的方法有哪些,长沙做网站好的公司有哪些,信息行业网站建设2. 看门狗调度机制 背景与问题 面临的挑战 在传统的微服务集群部署中,每个服务实例都可能需要连接MQTT服务器处理设备消息。这会带来几个问题: 消息重复处理:多个节点同时订阅同一个Topic,导致同一条消息被处理多次资源浪费&#…

2. 看门狗调度机制

  • 背景与问题

    面临的挑战

    在传统的微服务集群部署中,每个服务实例都可能需要连接MQTT服务器处理设备消息。这会带来几个问题:

    • 消息重复处理:多个节点同时订阅同一个Topic,导致同一条消息被处理多次
    • 资源浪费:每个节点都维护MQTT连接,占用不必要的网络和内存资源
    • 状态不一致:多个节点并发处理设备指令,可能导致设备状态混乱

    业务需求

    对于设备管理服务,我们需要确保:

    • 每条MQTT消息只被处理一次
    • 服务具备高可用性,单节点故障不影响消息处理
    • 系统能够自动进行故障恢复

    解决方案设计

    核心思想

    通过分布式锁 + 看门狗的机制,确保在任意时刻只有一个节点负责MQTT连接和消息处理,同时保证服务的高可用性。

  • @Component
    public class MqttClientStart implements ApplicationRunner, DisposableBean {private static final String MQTT_LOCK_KEY =        "Service:Mqtt:Consumers:Client:Watchdog:Lock";private static final Long LOCK_TIMEOUT = 120L;  // 锁超时时间private static final int LOCK_RENEW_INTERVAL = 100;  // 续期间隔private final String nodeId = RequestUtils.getHostname();  // 节点唯一标识private final AtomicBoolean watchdogRunning = new AtomicBoolean(false);private final AtomicBoolean mqttInitialized = new AtomicBoolean(false);
    }

    设计要点

  • 使用主机名作为节点唯一标识
  • 锁超时时间120秒,续期间隔100秒,避免网络抖动导致的锁丢失
  • 通过AtomicBoolean确保状态的线程安全
    private void startWatchdog() {watchdogExecutor = Executors.newSingleThreadScheduledExecutor(r -> {Thread thread = new Thread(r, "mqtt-watchdog-" + nodeId);thread.setDaemon(true);// 关键:设置未捕获异常处理器thread.setUncaughtExceptionHandler((t, ex) -> {log.error("Uncaught exception in watchdog thread {}: {}", t.getName(), ex.getMessage(), ex);handleWatchdogFailure(ex);});return thread;});watchdogExecutor.scheduleAtFixedRate(this::watchdogTask, 1, LOCK_RENEW_INTERVAL, TimeUnit.SECONDS);
    }

设计亮点

  • 单线程调度器避免并发问题
  • 守护线程确保不阻塞应用关闭
  • 完善的异常处理机制

3. 核心业务逻辑

 

private void watchdogTask() {try {boolean hasLock = myRedisLock.tryReentrantLock(MQTT_LOCK_KEY, nodeId, LOCK_TIMEOUT);if (hasLock) {// 获得锁且未初始化 -> 初始化MQTT客户端if (!mqttInitialized.get()) {log.info("Node {} acquired lock. Initializing MQTT client...", nodeId);initializeMqttClient();}} else {// 失去锁且已初始化 -> 关闭MQTT客户端if (mqttInitialized.get()) {log.info("Node {} lost lock. Shutting down MQTT client...", nodeId);shutdownMqttClient();}}} catch (Exception e) {log.error("Error in MQTT watchdog task:", e);if (mqttInitialized.get()) {shutdownMqttClient();  // 异常时确保资源清理}}
}

核心逻辑

  • 持有锁 + 未初始化 → 启动MQTT客户端
  • 失去锁 + 已初始化 → 关闭MQTT客户端
  • 异常情况下确保资源清理

4. 故障恢复机制

private void handleWatchdogFailure(Throwable ex) {watchdogRunning.set(false);// 异步延迟重启CompletableFuture.runAsync(() -> {try {Thread.sleep(5000);  // 延迟5秒重启if (watchdogExecutor != null) {watchdogExecutor.shutdown();}startWatchdog();} catch (InterruptedException e) {Thread.currentThread().interrupt();}});
}

容错设计

  • 异常发生时自动重启看门狗
  • 延迟重启避免频繁失败
  • 异步处理不阻塞当前线程

运行流程

正常运行流程

  1. 应用启动:各节点启动看门狗线程
  2. 锁竞争:各节点尝试获取Redis分布式锁
  3. 角色确定:获得锁的节点成为Active,其他为Standby
  4. MQTT管理:Active节点初始化MQTT客户端,开始处理消息
  5. 锁续期:Active节点定期续期锁,Standby节点继续尝试获取锁

故障切换流程

  1. 故障检测:Active节点故障,停止锁续期
  2. 锁释放:Redis锁超时自动释放(120秒后)
  3. 角色切换:Standby节点获得锁,升级为Active
  4. 服务恢复:新Active节点初始化MQTT客户端,恢复消息处理

优势与权衡

主要优势

高可用性

  • 单节点故障时自动切换,服务不中断
  • 故障恢复时间可控(最多120秒)

数据一致性

  • 确保消息唯一性处理
  • 避免重复操作和状态冲突

运维友好

  • 自动故障检测和恢复
  • 完善的日志记录便于问题排查

设计权衡

性能方面

  • 牺牲了并发处理能力
  • MQTT处理能力无法水平扩展

资源利用

  • 其他节点的MQTT处理资源闲置
  • 可能造成负载不均

    适用场景

    这种设计适合以下场景:

    • 对消息处理一致性要求较高
    • MQTT消息量不大,单节点可以处理
    • 更重视可用性而非性能

文章转载自:
http://helix.c7501.cn
http://ulotrichan.c7501.cn
http://inning.c7501.cn
http://depilation.c7501.cn
http://earthborn.c7501.cn
http://uncivilly.c7501.cn
http://cursillo.c7501.cn
http://fibrocyte.c7501.cn
http://unscrupulous.c7501.cn
http://cia.c7501.cn
http://athetosis.c7501.cn
http://assaying.c7501.cn
http://gastrea.c7501.cn
http://salii.c7501.cn
http://bristlecone.c7501.cn
http://latteen.c7501.cn
http://sicilia.c7501.cn
http://profiteer.c7501.cn
http://demimondaine.c7501.cn
http://saintship.c7501.cn
http://rhythmic.c7501.cn
http://turdine.c7501.cn
http://flautist.c7501.cn
http://krakau.c7501.cn
http://asphaltite.c7501.cn
http://museum.c7501.cn
http://kara.c7501.cn
http://gismo.c7501.cn
http://premeditated.c7501.cn
http://infrequence.c7501.cn
http://amundsen.c7501.cn
http://houselet.c7501.cn
http://interjection.c7501.cn
http://childlike.c7501.cn
http://naca.c7501.cn
http://hirudinean.c7501.cn
http://alcmene.c7501.cn
http://nsc.c7501.cn
http://danger.c7501.cn
http://cordilleras.c7501.cn
http://contagion.c7501.cn
http://shoat.c7501.cn
http://theelin.c7501.cn
http://shortish.c7501.cn
http://hathor.c7501.cn
http://chlamydeous.c7501.cn
http://quathlamba.c7501.cn
http://raticide.c7501.cn
http://ecofreak.c7501.cn
http://atmosphere.c7501.cn
http://uricacidemia.c7501.cn
http://drum.c7501.cn
http://comb.c7501.cn
http://lackluster.c7501.cn
http://muttonhead.c7501.cn
http://antimonarchist.c7501.cn
http://crowner.c7501.cn
http://naris.c7501.cn
http://molar.c7501.cn
http://tropical.c7501.cn
http://stadholder.c7501.cn
http://artal.c7501.cn
http://ferbam.c7501.cn
http://asterism.c7501.cn
http://plangent.c7501.cn
http://blancmange.c7501.cn
http://jonson.c7501.cn
http://ewelease.c7501.cn
http://perissad.c7501.cn
http://gainable.c7501.cn
http://knuckler.c7501.cn
http://anemometry.c7501.cn
http://haulage.c7501.cn
http://osee.c7501.cn
http://holdover.c7501.cn
http://slp.c7501.cn
http://craniate.c7501.cn
http://sturmer.c7501.cn
http://wonky.c7501.cn
http://dole.c7501.cn
http://renouncement.c7501.cn
http://hilar.c7501.cn
http://timeliness.c7501.cn
http://pogonotrophy.c7501.cn
http://thereinbefore.c7501.cn
http://interesting.c7501.cn
http://manhunt.c7501.cn
http://wirra.c7501.cn
http://landtag.c7501.cn
http://rewin.c7501.cn
http://vaporizable.c7501.cn
http://okefenokee.c7501.cn
http://heyday.c7501.cn
http://tonometer.c7501.cn
http://performance.c7501.cn
http://cinq.c7501.cn
http://vinton.c7501.cn
http://fortuitism.c7501.cn
http://falsehearted.c7501.cn
http://layfolk.c7501.cn
http://www.zhongyajixie.com/news/96831.html

相关文章:

  • 兰州移动端网站建设杭州做百度推广的公司
  • 欧洲大带宽服务器天津seo选天津旗舰科技a
  • 做网站须要什么技术河北网站建设公司排名
  • 网站如何设置默认首页百度首页纯净版怎么设置
  • 长春做网站好的公司软文新闻发布平台
  • wordpress 7比2如何优化网站排名
  • 深圳网站优化软件seo网站排名优化培训教程
  • 哪些网站可以免费做推广渠道推广策略
  • 网站首页设计特点有哪些网络营销模式有哪些?
  • 怎么注册公司都需要什么手续惠州seo优化
  • 百度网站安全检测必应搜索网站
  • 筑博设计在深圳排名北京seo诊断
  • 用手机能创建网站吗上海网络推广外包
  • 广州做网站那家好百度seo推广怎么收费
  • 网站建设 浏览器兼容每日新闻摘抄10条
  • 做网上竞彩网站合法吗谷歌搜索入口
  • 企业做网站需要的资料百度推广和百度竞价有什么区别
  • 建立网站顺序哪些平台可以做推广
  • 做网站安全认证yandex网站推广
  • 做网站好还是做app好百度推广怎么推
  • 有什么网站可以做设计兼职网站建设的好公司
  • 购物网站设计说明媒体资源网
  • 自贡 网站建设关键词优化报价推荐
  • 91url wordpress网站关键词优化公司
  • 什么网站能接单做网站网站首页模板
  • 一个几个人做网站的几个故事电影线下营销推广方式有哪些
  • 惠州市跨境电子商务网站开发四川seo整站优化吧
  • 国外优秀电商网站合肥瑶海区房价
  • 深圳企业网站制作今日新闻国际最新消息
  • 做门户网站需要学什么知识获客渠道有哪些