zoukankan      html  css  js  c++  java
  • [问题排查]记录一次两个dubbo提供者同时在线,代码不一致导致问题的排查记录

    1. 需求

      有一个需求job定时5秒一次,job【消费者】调用dsc【提供者】提供的dubbo完成:先清空redis的某个key,然后再往redis中放入新的数据,这是一个定时任务,需要每隔5秒执行一次;

    2. 问题场景

      某次上线发布之后,发现再写入redis中添加了多一点数据的写入,然后发布之后发现一个奇怪的情况,就是redis中数据一下子有,隔几秒又没有的问题,查找了一个早上,盯着日志看了很久都没发现问题;

    3. 解决过程

      最后询问一个同事,

      他问:是走dubbo接口的吗?

      回:是

      他问:那你可以看一下dubbo-mointer会不会存在两个提供者。

      最后从dubbo的监控中看到有两个dubbo的提供者,url完全一样,但是一个服务上线了新的代码,一个服务忘记上线新代码了,导致如果job调用到新的代码就会有新数据的返回,如果调用旧的就会没有数据;

    4. 解决方案【选一种执行】

      4.1 将旧的服务停止

      4.2 将服务代码更新

    5. 总结

      使用微服务架构的时候,很多时候考虑问题不能用单机模式的思维了,需要转换成分布式的思想,就是服务可能分布在多个地方,查找问题的时候需要从多个角度来思考问题。

  • 相关阅读:
    LeetCode——Path Sum II
    注解配置 ssh
    冒泡排序深入具体解释
    在web page中使鼠标右击失效的几种方法
    XMPP个人信息展示
    android一个弹出菜单的动画(二)
    MySQL协议分析
    MySQL DBA教程:Mysql性能优化之缓存参数优化
    INSERT DELAYED 句法
    UDP包的最大大小是多少?
  • 原文地址:https://www.cnblogs.com/zhuangmingnan/p/9410963.html
Copyright © 2011-2022 走看看