zoukankan      html  css  js  c++  java
  • 系统兼容性升级,同步转异步兼容升级思维转变

    本文中心:

    同一个流程升级功能

    一种是在原来接口上修改.影响所有接口.

    如果发现对老功能存在不兼容的问题,那么记住要转换思维,要写到新的接口上.

    例子:

       结束计费按钮.

       服务端需要做.

      1.  获取订单信息

    2. 结束账单. 同时返回账单信息.(幂等接口,账单已结束就直接返回,即时第二次调用时位置信息是新的,也直接返回, 对信息不校验)

    3. 然后向收银台收单

    4. 结束订单,修改订单状态.

    问题:

    1. 接口太重了.影响成功率.

    2. 开发周期短,一期先上同步.二期怎么改回异步.

    担心:

           1. 乘客端调用 finishOrder

    2. 进入支付页面.

    第一个想法:

           1. 将接口异步化,然后前端使用异步化. [ 对乘客无感知,还是转菊花]

           2. 菊花背后是 状态轮训+tcp 通知. 局部接口的状态查询可以快速点. 比如支付成功之后回调的查询.

           3. 服务端接收到请求,除了位置判断外直接返回. 其他复杂操作异步化执行.

    问题: 一旦这个功能改造后,老版本就会出现问题.  

             1. 如果异步化没有执行成功或者前端先进入下一个流程尝试支付. 都会被收银台拒绝, 无此 outTradeId.

              所以想着想着必须一期就上一个轮训接口,否则升级二期成异步之后,老版本就会有问题.

    正确解决方案:

       1. 既然老版本会影响.那么就应该新开一个接口. 老接口的行为方式不变,还是同步. 新接口采用新的方案,采用异步的方式.这样就不会不兼容了. 原接口上功能升级不能不兼容,那么就不要想着在原接口上兼容升级. 不要太轴,总能想到解决方案. 不要太关注细节.

     

     

     

      

  • 相关阅读:
    矩阵距离
    CF409D Big Data
    AT2685 i18n
    P3366 【模板】最小生成树
    P3367 【模板】并查集
    ISBN(洛谷P1055)
    关于数组
    0021---一元一次方程
    0020---求圆锥体积
    0019---求圆台的体积
  • 原文地址:https://www.cnblogs.com/fei33423/p/8081944.html
Copyright © 2011-2022 走看看