1

我们公司是做物流的, 对方系统推送数据给到我们这边, 就是发布一个订单, 希望司机来接单运送货物.
而我们这边反馈数据给到对方系统, 就是告诉他们司机有没有接单, 什么时候接单, 什么时候到达现场装货, 有没有产生费用, 费用金额是多少等等.

数据反馈到对方系统的方式不外就是2种方式:
**1 我们系统主动调用对方系统的接口把数据推送过去。
2 对方系统采用定时器的方式, 调用我们提供的接口来循环查询数据.**

我自己写代码, 考虑到跟多个公司对接, 为了减少代码开发, 所以考虑采用第2种方式, 这样我自己编写一次代码, 以后就不用再考虑代码开发的问题了.

可是公司的老板不同意, 他认为这样做会增加服务器无畏的开销, 比如说订单在6个小时内还没有司机接单, 采用第2种方式的话, 对方系统每10分钟查询一次, 这样就做了N多次无畏的工作.

于是我就拿出支付宝接口来做例子, 提交交易数据的时候, 我们向阿里服务器推送数据, 可是交易是否成功, 阿里服务器并没有调用我们的接口将交易结果推送过来,而是让我们自己用定时器循环查询交易结果.

老板解释说, 支付宝需要反馈的结果就只有一个结果, 因此我们服务器采用定时器循环查询对阿里服务器来说开销也不是很大。
可是我们现在对接的接口开发, 需要反馈给对方系统的数据是多个结果数据, 而且这些结果数据产生的过程是个动态过程, 他根本就没有一个准确的结束时间点, 或者说是结束标志, 我想老板说得也有道理, 虽然司机什么时候完成订单是有结束标志, 但是什么时候不再添加修改费用却没有一个结束标志, 因此同意了老板的说法。
考虑到老板不是IT出身的, 害怕有可能会有遗漏的地方, 所以就在这里发帖求助.

我暂时的想法是, 为了跟多个公司对接, 如果采用第1种方式对接, 我们调用对方的接口主动将数据推送过去的话, 我想让我们自己来定义接口的标准, 然后让对方来开发, 不知道可不可行?

或者有没有其他更好的解决方式?

希望做过接口开发设计的前辈指导下!!

wanlion 104
2017-11-08 提问
2 个回答
0

已采纳

我个人也是比较倾向于第1种。原因如你老板所说,减少服务器不必要的请求。同时,及时性比第二种高。
至于和多个系统对接,工作量的问题,就得看你们公司是否足够强势了。
如果你们足够强势,那么你们只需定义好要推送的数据,对方根据你们数据格式来写接收的接口;
如果你们不够强势,那么即使是采取第2种方案,对方也会要求你们返回给他们想要的数据格式。

0

考虑对方对你数据反馈实时性的要求。

实时性低比如十分钟你直接用sftp把这十分钟的结果文件传过去。txt, csv你自己定义,简单方便。

如果实时高,你就用消息队列,比如Kafka,你自己是producer,其他厂商是comsumer。他们订阅自己的topic。

分出了两个模块,计算处理和消息传输。

撰写答案

你可能感兴趣的

推广链接