<?php function getMillisecond() { $time = explode ( " ", microtime ()); $time = $time[1] . ($time[0] * 1000); $time2 = explode( ".", $time ); $time = $time2[0]; return $time; } function generateRandomString($length = 10) { $characte…
需求说明 在过去单机系统中,生成唯一ID比较简单,可以使用MySQL的自增主键或者Oracle中的sequence, 在现在的大型高并发分布式系统中,以上策略就会有问题了,因为不同的数据库会部署到不同的机器上,一般都是多主实例,而且再加上高并发的话,就会有重复ID的情况了.至于为什么会有重复就不多说了,技术人员都懂的. 本文讲述的案例不仅仅局限于数据库中的ID主键生产,也可以适用于其他分布式环境中的唯一标示,比如全局唯一事务ID,日志追踪时的唯一标示等. 先列出笔者最喜欢的一种全局唯一ID的生成…
分布式系统全局唯一ID的生成 一 .什么是分布式系统唯一ID ​ 在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识. ​ 如在金融.电商.支付.等产品的系统中,数据日渐增长,对数据分库分表后需要有一个唯一ID来标识一条数据或消息,数据库的自增ID显然不能满足需求,此时一个能够生成全局唯一ID的系统是非常必要的. 二.分布式系统唯一ID的特点 全局唯一性:不能出现重复的ID号,既然是唯一标识,这是最基本的要求. 趋势递增:在MySQL InnoDB引擎中使用的是聚集索引,由于多数RDBM…
在老大的指引下,需要将系统的json文件格式转换成apidoc的json格式,也就是json格式的重组,但是这个apidoc的生成格式是不固定的,因为apidoc有自己一套的生成规则,我需要研究一下是怎么生成的. 一.官方基础栗子 二.理解apidoc生成静态文档的结构解读 三.深入理解一下apidoc生成原理以及规则 一.apidoc基础栗子 全局安装apidoc npm install apidoc -g 1.首先建立文件目录 2.需要你在input文件夹里面写上你的js部分 这个是栗子的j…
本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 C++的官方说法中,特殊成员函数是C++愿意去主动生成的.C++98有4个这样的函数:默认构造函数,析构函数,拷贝构造函数,拷贝operator=.当然,这里有些细则.这些函数只在需要的时候产生,也就是,在类中如果一些代码没有清楚地声明它们就使用了它们.一个默认构造函数只有在类中没有声明任何构造函数的情况下才会被生成出来(当你的目的是要求这个类的构造函数必须提供参…
一.React规范 1.1 react key的作用 当渲染重复数据的时候,React.diff会根据生成的key进行虚拟DOM渲染, 所以我们需要在遍历的地方都要加上key,例如map.for等等 同样, antd作为react的UI组件库, 有些地方也需要遵循react的key规范.例如 antd-table 在渲染前要求: 在 Table 中,dataSource 和 columns 里的数据值都需要指定 key 值.对于 dataSource 默认将每列数据的 key 属性作为唯一的标识…
在实际业务中,是否碰到过这种场景: 我们需要一个单号,要在业务系统里面保证唯一,保证增长? 在运营过程,需要知道业务单发生的时间,最好不用经过系统查找就知道发生的时间? 在排障过程中,不用再次查找就知道,订单的一些信息? 业务ID 经常需要生成以方便后续跟踪使用.一般需要满足以下特性: 1. 唯一性 2. 可阅读 3. 增长 4. 数字类型? 5. 其他信息(payload) 所以,业务ID的生成,这里涉及两个问题: 1. ID 的规则,也就是ID 最终长什么样,满足什么约束 2. ID 生成策…
MongoDB的文档必须有一个_id键. 目的是为了确认在集合里的每个文档都能被唯一标识. ObjectId 是 _id 的默认类型. ObjectId 采用12字节的存储空间,每个字节两位16进制数字,是一个24位的字符串. 12位生成规则: [0,1,2,3] [4,5,6] [7,8] [9,10,11] 时间戳 |机器码 |PID |计数器 前四位是时间戳,可以提供秒级别的唯一性. 接下来三位是所在主机的唯一标识符,通常是机器主机名的散列值. 接下来两位是产生ObjectId的PID,确…
最近在Oracle上发现使用hash_hmac()报找不到此函数.为此特意查到oracle的文档.详细请看官网回答:https://cx.rightnow.com/app/answers/detail/a_id/9825/~/cannot-use-the-hash_hmac-function-in-php 原因是:此扩展在 Oracle B2C 服务中未启用,无法启用.就很无语.但是它家自己推出个  Crypto API 也是加密的一个类 下面是 sha256 简单是例子: oracle云api…
微信支付(0923更新)商户支付密钥key的生成与设置 说明:新版微信支付,用户必须授权登录才能支付.需要商家自己设置商户号支付密钥. 设置商户号支付密钥方法如下: 1. 申请通过审核后,打开微信发来的邮件. 直接获取微信支付商户号(接口文档中的商户号MCHID):(也叫 受理商ID 填写到后台). 商户支付密钥key 按以下步骤自己设置生成. 2 点击访问 新商户平台http://mch.weixin.qq.com 或https://pay.weixin.qq.com,用账号和密码登录.并安装…