xingyuecanxue

  前几天对接的同事因为没有时间,所以整个上传文件的流程除了对接接口这块,其它的我先开发完成了。今天对接接口,同事说使用接口传输,数据处理时间大约需要7、8s,接口回应时间太长了。然后我提出了异步对接的思路:使用kafka进行传输。

  方案1为之前接口传输的方案,方案2为新的异步传输的模式。

方案1:接口对接

文件格式

  1. 上传格式:gz(csv文件进行gz压缩)
  2. 解压后的csv编码:UTF-8(因为上传的原文件是utf-8)
  3. 解压后的csv格式进行校验:第二列为Mobile,第三列Province,第四列City,第六列为AreaCode
(需要用gzdecode进行解压文件获取数据)

传参

  1. filename :上传到fastdfs的文件名
  2. handle:1为处理文件,0为检验文件
  3. encoding: UTF-8

回参

  1. 格式:json数组格式
  2. 第一维键名分别为:handle(检验还是处理,检验是0,处理是1), add(新增),diff(不一致),del(需要删除,但未删除)
  3. 不一致的,对应顺序:旧数据=>新数据,如浙江变成上海,则浙江=>上海
  4. 举例:
array(
   \'handle\'=>1,
   \'add\'=>array(
                  0=>array(
                             \'code\'=>1807273,
                             \'province\'=>\'浙江\',
                             \'area\'=>\'杭州\',
                             \'at_id\'=>\'123\',
                 ),
                 1=>array(
                             \'code\'=>1521465,
                             \'province\'=>安徽,
                             \'area\'=>\'安庆\',
                             \'at_id\'=>\'878\',
                 ),
     ),
   \'diff\'=>array(
                  0=>array(
                             \'code\'=>132456,
                             \'province\'=>\'浙江=>河南\',
                             \'area\'=>\'杭州=>信阳\',
                             \'at_id\'=>\'878=>598\',
                 ),
     ),
  \'del\'=>array(
                  0=>array(
                             \'code\'=>132456,
                             \'province\'=>\'浙江\',
                             \'area\'=>\'杭州\',
                             \'at_id\'=>\'587\',
                 ),
     ),
)

方案2:kafka队列传输

1、catmanager上传文件成功后,将fastdfs的文件地址通过kafka队列传输给接口中心,接口中心通过常驻脚本消费kafka进行数据获取和处理
2、然后接口中心处理完成后,将处理结果上传到fastdfs,再将文件地址通过fastdfs传输给项目后台,后台也是用常驻脚本消费
3、传输格式:和方案1相同,每个参数用json数组传输

分类:

技术点:

相关文章:

  • 2021-08-22
  • 2022-03-08
  • 2022-12-23
  • 2022-12-23
  • 2021-12-28
  • 2021-05-10
  • 2022-01-11
猜你喜欢
  • 2021-09-25
  • 2021-12-14
  • 2021-05-08
  • 2021-12-19
  • 2022-12-23
  • 2021-12-26
  • 2021-12-28
相关资源
相似解决方案