怎么样才能把美团如何查看订单收货地址后台的订单实时填到我们酒店自有系统,有大神们弄过这个事情吗

主要是隔段时间要看看有订单僦要拷贝出来,基本上每天都要做数据同步就没有其他办法了吗?... 主要是隔段时间要看看有订单就要拷贝出来,基本上每天都要做数據同步就没有其他办法了吗?

· 来这里与你纸上谈兵

每天都要把美团如何查看订单收货地址酒店订单的客人黄金日期等信息停到酒店內部管理系统。其实这样填报是必须的因为有严格规定的。

你对这个回答的评价是


· 超过10用户采纳过TA的回答

肯定非常不错的一些东西,这个管理系统的非常完善的一些系统也好好掌握一下

你对这个回答的评价是?


· 超过14用户采纳过TA的回答

推荐你一个软件机器人工具,可以解决你的问题叫博为小帮,能自动采集OTA后台订单信息再自动填到其他软件系统,操作执行效率比人工高 据我所知,很多酒店嘟在用

你对这个回答的评价是?

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

该楼层疑似违规已被系统折叠 

让伱们看看我都想死了在美团如何查看订单收货地址订的酒店。去到酒店哪里前台没问我们身份证那些也没有先是收钱给卡那些再办入住。而是我们到了前台她就确认入住了后来因为我男朋友没有带身份证所以就住不了。我就没有住了那时候我没有注意,她已经确认叺住了然后第二天我才看到。打电话要美团如何查看订单收货地址说退钱他不给退。说他反正一直给我留一个晚上是因为我进那个群团里面,他直接就说不能住了我就走了,现在打电话酒店不给退说房给我们留了一个晚上我想说你们都知道我不能住了你是留给鬼住嘛,?更可笑的是美团如何查看订单收货地址看图片以后不会再去这个酒店和用美团如何查看订单收货地址了坑逼


点击蓝字订阅不错过下一篇好攵章

本文根据第23期美团如何查看订单收货地址点评技术沙龙演讲内容整理而成。

酒旅有很多条业务线例如酒店、门票、火车票等等,每種业务都有结算诉求而结算处于整个交易的最后一环不可缺少,因此我们将结算平台化来满足业务的结算诉求。

结算平台通过业务需求以及我们对业务的理解沉淀了各种能力并构建了丰富的能力地图。我们将业务的发展归纳为几个阶段例如业务孵化阶段,快速抢占市场扩大覆盖阶段市场稳定后急需盈利阶段,国内业务稳定后的国际化阶段业务发展的各个阶段都能在结算平台找到相应的能力支持。

业务孵化阶段讲究的是低成本试错我们将结算的核心流程,账单->付款->发票等模块平台化新业务接入只需要5~10天。我们的预付款结算汾销结算,阶梯返佣结算地推结算能力能快速的帮业务抢占市场实现盈利。

我们的汇率管理多币种,多时区结算能力可以助力业务开展海外市场当前结算平台支持酒旅4个事业部,17条业务线涵盖境内、境外等业务的线上结算,后边我主要介绍下对账平台的实践即账单嘚实践

对账是平台化的第一环,它需要算清楚商家和美团如何查看订单收货地址点评的收益明细后续的付款,发票等都是基于对账進行开展的。同时它需要对接酒旅的各个订单中心不同业务的订单具体实现和业务流程不同,不同的业务对账规则和时机也不相同同時对账每天需要处理数百万条交易明细。

如何解决订单、对账层面的差异每天处理数百万交易明细如何高效准确的处理这些数据?17条业務线如何做隔离、定制、个性化扩容其中面临了很多挑战,这也是为什么要讲对账的原因

账单的生成逻辑主要分两部分:

  1. 通过订单中惢,供应链分别获取交易数据、商家基本信息、结算规则

  2. 基于交易数据、商家信息、结算规则生成对账单。

早期结算系统基于酒店业务實现有很重的业务特性,模式是期末模式比如账期是6月1日到6月30日,会在7月1日时执行以上两步操作结算需要关注业务逻辑。

这种模式存在很多问题比如业务是灵活多变的,结算往往7月1日时才能感知到业务的变化同时需要处理整个月的交易数据,这样就需要结算有很強的机动能力应对变化很强的数据处理能力。

早期的系统架构和实现有一些问题比如采用单线程,PULL的模式去获取数据生成账单,虽嘫部署了很多台server但其实同一时刻只有一台server在工作,有严重的资源浪费,同时数据处理效率较低

本应7月1日进行结账,因为业务变更数据處理效率低,出账往往会拖到7月底商家体验非常差。当时除了酒店业务之外门票、火车票业务都处于孵化阶段也有结算需求,比较紧迫的任务有两个一个是快速的解决酒店结账不及时的问题,另外一个是支持新业务的结算需求

所以当时的策略是,优化老系统让酒店業务平稳运行搭建新的结算平台支持新业务的孵化。

  1. 和上游约定业务变更流程需要提前告知结算,结算提前做系统升级

  2. 结算提高数據处理能力。

提高数据处理能力思路是:单线程改多线程串行改并行,单机计算改分布式计算具体做法是:商家ID维度用取模的方式分爿,通过配置将不同的分片配置到不同的server同时每个server上有单独的线程池,可以在商家ID的维度并行获取数据处理账单。

这样虽然能快了起來但是它又引入了一些新的问题。比如单点问题如果server2宕机了,配置不具备自动rebalance的能力就需要结合报警来人工处理,运维压力会变大如果继续提升处理能力,就需要更多的数据分片更多的server资源,这时需要去重新处理分片和配置的逻辑虽然它是可扩展的,但是并不靈活

资源利用率波动也比较大,在7月1日处理整个月的数据资源利用率(蓝线),在月初的时候最高平时的时候基本上接近于0。比较健康的资源利用率应该像黄线一样,虽然会有业务的峰值但是整体上来看是趋于平稳的。如果是蓝线这样的资源利用就会导致订单系统、结算系统、DB,都需要按照业务的峰值来部署会产生资源浪费,最后我们在速度和资源的使用上求一个平衡通过这些优化做到了忣时结账。

  1. 提升数据处理效率产生资源浪费

  2. 系统处理能力可扩展,但是不够灵活优雅

  3. 业务逻辑和结算逻辑严重耦合。

对账平台化及高性能实践

上边这些问题在对账平台化时都需要解决尤其是逻辑耦合问题,如果不解决后续对接的业务越多,步伐越沉重最终会拖慢業务的发展。解决这个问题需要优化结算系统的业务架构需要抽象一套订单模型,商家模型计算规则模型,这些模型要足够通用在兼容各个业务差异同时又要有一定的扩展和定制能力,模型的抽象是平台化的关键

如上图订单状态机所示业务非常复杂,状态变更的轨跡订单如果不记录清楚事后结算时很难回溯出来当时的交易情况。结算关注金钱变更和结算时机因此需要分析订单的状态机过滤出结算要关注的状态,在上图中我用蓝色表示业务变更会导致状态机的设计变更同时会影响过滤逻辑,这个是业务和结算耦合的关键点不哃的业务玩法不一样,状态机也不一样过滤逻辑完全无法复用。

结算抽象了一组统一的订单状态来描述订单的整个生命周期:支付成功使用前退、使用、取消使用、使用后退。它们所代表的含义如字面上一样简单便于理解,每来一条业务线将订单的原始状态和结算抽象的状态做映射,就能解决订单层面的差异以酒店为例:预定周日晚上的酒店,周四行程变更无法入住周五找客服退款,客服退款荿功这个对应使用前退,客服退款在一些特殊的场景也会对应到使用后退最终解决了订单状态层面的差异。

状态过滤出来后要计算这筆交易商家和美团如何查看订单收货地址点评分别的收入和支出是多少如上图所示酒店要计算收入和支出需要订单的基础信息、间夜信息等因子,这些因子可能散落在各个数据表中收集和计算非常复杂,业务变更会导致计算因子和计算逻辑变更不同业务计算因子不相哃,所以它很难复用

结合前边抽象的订单状态,以及结算关注的收入和支出我们抽象出来一套资金语言,它由5种状态+资金描述组成所有订单通用,从而做到结算和订单的彻底解耦例如“支付成功状态”、“使用状态”对应收入;“使用前退状态”、“取消使用状态”、“使用后退状态”对应支出。资金描述包含具体的收入、支出金额以及收入、支出的具体描述。

商家收入= 单个进价 * 购买数量 - 商家承擔促销;美团如何查看订单收货地址点评收入=总卖价 - 总进价 - 美团如何查看订单收货地址点评承担促销最终商家的收入=总收入-总支出,通過资金语言能推算出收入和支出的具体由来资金语言是结算和订单的标准协议,不管什么样的业务数据结构和业务流程怎么设计,都按照标准协议来只要协议不变,不管是订单变化还是结算变化都不会相互影响订单和结算也就具备了独立演进的可能。

商家关联的信息有很多例如合同、资质等等,但是结算关注的是这个商家的身份信息我们将这类信息抽象为商家的基本信息,同时也需要关注商家嘚对账和付款规则我们将这类信息抽象为结算信息,结算信息包含对账和付款的维度和时机

对账和付款不同业务维度和时机都不相同,我们将这些信息抽象出来只要新业务维度和时机在这些规则之内,就能很好的复用最终解决了供应链层面的差异。

数据获取采用PULL模式如果上游故障会导致无法获取数据,从而影响账单计算重度外部依赖。不管是数据获取还是计算账单都需要穿透两层业务逻辑业務逻辑严重耦合难以复用。

抽象了资金语言商家信息,结算规则标准化了接入规范,数据接入采用PUSH的模式业务产生了交易,新签约叻商家只要能将数据按时的PUSH过来就能按时结账结算被动接收数据,轻度外部依赖

新架构设计了适配层,用来做业务数据和标准协议的適配适配层逻辑结算和业务都可以做,但是考虑到业务侧的同学更了解业务业务变更自己修改适配层不需要找结算排期更灵活,我们將适配层交给业务团队来做每来一个新业务只需要一个小的适配块,就能快速接入

通过抽象的模型和标准协议,对账平台做到了数据聚合统一计算规则统一,数据模型统一从而达到了高度复用,结算和业务解耦历史上酒店和旅游订单发生过多次重构,对结算基本無影响人员也得到了高度复用,当前对账模块只有4名RD对接了17条业务线

对账平台实践主要关注如下四点:

  1. 实时性设计,我们希望订单产苼交易商家立刻能看到自己的收入同时希望解决资源利用率的问题。

  2. 高性能设计每天数百万交易明细,每个账期需要处理数百万账单怎么保证这些数据的生产和计算准确、高效?

  3. 隔离和定制结算对接了17条业务线,每个业务体量不同业务逻辑也会有一定的差异,多個业务之间怎么隔离怎么做到业务之间相互不影响?

  4. 可扩展性设计业务快速规模化以后,系统的处理能力可扩展满足业务的发展预期。

订单产生交易将交易转为资金语言,通过消息中间件(Mafka)实时的推送给结算结算只做必要的校验,完成后数据落到mysql中此时数据嘚状态是未处理,这一步设计了ack机制保证数据不丢落库后会给账单引擎发一个消息,说有一条数据要处理了数据的接入和账单引擎的計算做了分离,数据的接入非常快基本延迟在毫秒级别。

账单引擎会在6月1日生成6月1日到6月30日的空账单数据经过聚合规则,进入到相应嘚账单同时触发账单计算规则,完成账单的实时计算一些特殊的情况例如数据产生在6月1日,结算日期是6月2日会将这个消息转发到Mafka的延迟队列,在6月2日重新消费这条消息数据处理成功后,数据的状态变更为已处理

账单引擎的补偿和监控机制是通过对数据的状态控制來实现的,例如6月1日到30日商家A一共产生了1万条交易明细,已处理的数据只有8千条那剩下的2千条要么就是在途,要么就是消息丢了或鍺系统BUG,会有一定的监控和补偿策略来保证数据的完整性账单引擎处理具体的交易明细延迟在秒级。

提高账单的处理效率需要从两个维喥出发:

  1. 每天要处理对账单数量大概在百万级别一个一个处理是非常慢的,所以要尽可能在对账单维度提高并发度

  2. 每个对账单要接收嘚流水数量也不相同,可能单对账单同一时刻的并发度会很高所以要尽可能提高单对账单的并行度。

我们通过消息中间件Mafka来提高并发度在Topic的维度拆分多个Partition,不同的ConsumerGroup配置不同的消费线程数Mafka基于滑动窗口机制实现了多线程消费同一个partition的数据,所以可以做到并发度= partition数量 * 消费線程数在数据处理上做了幂等性保障,能确保数据的正确处理从架构上来看除了DB之外全链路无单点,比如某个server挂了以后通过Mafka的rebalance机制,将partition自动分配给别的server消除了server层面的单点问题。

单个对账单包含了多条交易明细账单的总金额是多条交易明细金额的累加,并发度上来鉯后会产生线程安全性问题,怎么保证账单总金额的数据准确性

正文中标绿的名词均为参考链接,可点击查询

查看文中代码请关注嘚更新。

主题:境外业务性能优化实践

境外度假业务与国内业务相比有很大不同国外网络情况十分复杂,本次分享将从前端优化、后端優化、网络优化等角度来介绍我们在面对境外特殊业务场景下的性能优化实践

作者简介:陶云霜,美团如何查看订单收货地址点评后台開发工程师、高级技术专家美团如何查看订单收货地址旅行境外度假业务交易后台组技术负责人,2012年加入原大众点评

我要回帖

更多关于 美团如何查看订单收货地址 的文章

 

随机推荐