大家好,关于在线查询订单号很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于在线查询订单号的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

避免新同学因经验不足导致设计缺陷,在后期无法满足业务诉求。

Snowflake算法

组成:时间戳 + 数据中心标识 + 机器节点 + 序列号。

高度唯一且随机。

适用场景:不想让外界感知内部系统的交易量级。比如调用外部渠道的请求号,如果使用序列号,有可能会让外部猜测出交易的规模。

特定组织中心化生成。

适用场景:药品或供应链管理,全球范围内标识或追踪商品。

业务规则编码

适用场景:金融支付、电商订单等。

第1-8位:日期。通过单号一眼能看出是哪天的交易。

第9位:数据版本。用于单据号的升级。

第10位:系统版本。用于内部系统版本升级,尤其是不兼容升级的时候,老业务使用老的系统处理,新业务使用新系统处理。

第11-13位:系统标识码。支付系统内部每个域分配一段,由各域自行再分配给内部系统。比如010是收单核心,012是结算核心。

第14-15位:业务标识位。由各域内部定,比如00-15代表支付类业务,01支付,02预授权,03请款等。

第16-17位:机房位。用于全球化部署。

第18-19位:用户分库位。支持百库。

第20-21位:用户分表位。支持百表。

第22位:预发生产标识位。比如0代表预发环境,1代表生产环境。

第23-24位:预留。各域根据实际情况扩展使用。

序列号通常采用数据库生成,保证机房内唯一性。

简要流程如下:

这里使用指定步长去更新数据库,主要是考虑提高性能。但是存在一定的损失,比如发布重启,缓存中的序列号就会被浪费掉。但因为是循环使用,所以基本上对业务没有影响。

五、内外区分

建议把内部订单号和外部订单号做个区分。所谓外部订单号主要指对客(包括个人用户和商户)的订单号,这种场景下,可以考虑把业务类型做为重点编织进到订单号里面。

日期则放在交易类型的后面。

也可以翻翻自己支付宝的订单记录,日期放在开头,紧接着日期的就是交易类型,2000代表转账,比如xxxx。而2300或2200就是买东西的支付订单。

以上是关于在线查询订单号的相关信息,了解更多关于内容请继续关注本站。

你可能想看: