大家好,关于在线查询订单号很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于在线查询订单号的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
避免新同学因经验不足导致设计缺陷,在后期无法满足业务诉求。
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就是买东西的支付订单。
以上是关于在线查询订单号的相关信息,了解更多关于内容请继续关注本站。

