青乡 Blog

没有上帝,没有国王。

订单号的设计

"流水号"

订单号的由来 对于一般的数据而言,表的设计,就一个主键。 但是,对于订单数据来说,除了流水号这个主键之外,还有一个订单号。 流水号,供系统内部使用,即供技术层面使用。 订单号,供系统外部使用,是给人看的。 订单号的应用场景 1.电商行业 2.支付行业 3.物流行业 如何设计订单号 流水号,作为主键,和其他主键一样,只要保证唯一性即可,具体实现方法,一般是采用数据库序列号递增的设计。 订...

网络编程之知识要点

"Net Program"

TCP:连接为什么是3次分节/分组/握手,关闭为什么是4次? 连接 步骤 1.客户端连接 2.服务器确认接受到客户端连接 服务器连接 //这两步合二为一 3.客户端确认接受到服务器连接 关闭 步骤 1.客户端调用.close()主动关闭 2.服务器确认接受到客户端关闭 3.服务器调用.close()关闭 //2和3是分开的,因为3需要服务器显式调用.close() 4.客户端确认接收到服务...

第三方支付系统技术分享

"1.架构设计 2.如何实现 "

技术架构 1.网上常见的支付系统架构体系图 2.支付宝 3.京东 简化流程图 技术栈 controller/service/dao 1.struts2/springMVC //控制器层 有多个web,有的是struts2(早期),有的是springMVC(后期)。 2.spring //业务层 基于配置文件或注解。 3.ibatis //持久层 基于sql。 三大中...

泰国曼谷游

"阿福"

路线 1.深圳到香港 2.香港机场到泰国 3.泰国曼谷市内 准备资料 出国最重要的当然是护照,没有办护照的,户口广东省内10天,省外一个月,因为要来回邮寄证件。 护照需要签证,一般都是在省会城市签证,因为签证是由抵达国家来审核,主要是审核犯罪记录啥的,其次,还有你的经济能力,去泰国必须携带至少5000人民币,而且要求是现金,因为银行卡也不方便人家抽查。去日本的同事,据说是年收入10万以上...

数据库之ACID

"1.原子性2.一致性3.隔离性4.持久性 "

原子操作Automic 只有两种可能: 1.提交 2.回滚 单条sql语句的事务和多条sql语句的事务,都是只有两种情况。 所有数据一致性Consistency 银行总共300,ABC各100。 无论怎么转账操作,总的数据都是300。 单个数据隔离性Isolation 4种情况 A有100。 两个事务T1T2(在代码service层,每个事务内部包含两个SQL操作)并发执行写读数据A1...

支持国产数据库厂商kingbase

"支持国产数据库厂商kingbase"

连接kingbase服务器 1.jdbc驱动jar包 2.配置 用户名密码 连接url 驱动类:com.kingbase.Driver 1 2 3 4 5 6 7 8 9 10 11 12 13 14 # kingbase jdbc.driverClass=com.kingbase.Driver jdbc.url=jdbc:kingbase://192.168.2.145:54325...

支付之订单表的垂直切分和水平切分

"表的切分有3个问题:1.切分的对象是谁?表; 2.怎么切分?垂直(按表的字段)和水平(按表的数据记录行); 3.谁来实现切分功能?数据库厂商或应用程序 "

数据量 单表-订单表 几十万/日 几千万/年 几亿/累计 数据大小 G 注:达到G,oracle官方推荐分区。 带来的问题 单表过百万,速度就很慢。 如何解决查询慢的问题 1.近期数据 近几个月的数据,放到订单库的订单表。 2.历史数据 放到历史库。 历史库 数据还是过亿。怎么处理?分区。 分区 oracle 怎么分区? 创建表的同时,创建分区。 创建分区,有好几种不同方式?...

多线程之线程池

"jdk并发包-线程池"

线程池分类 单线程 既然是单线程 为什么还要使用线程池?因为1.单线程2.数据集合。使用数据集合作一个缓冲。 多线程 1.不显式添加数据集合 使用默认数据集合 2.显式添加数据集合 例如 有界队列 配置数据的数量 定时线程池 一般情况下,系统业务较多,会包含多个线程池,分别处理不同的业务类型。 线程池的数据流 数据是被新创建的线程消费,还是被复用线程消费,还是被暂时放到缓存里,还...

分布式缓存之节点映射的算法

"1.顺序遍历每一个节点 直到找到数据 2.hash 直接找到某个节点的数据"

背景 数据量大 单机无法满足要求 采用多机的解决方案。多机的时候,有个问题,每台机器数据是否同步? 1.同步 所有机器保存的数据一样。比如 jboss cache。 2.不同步 每台机器保存的数据不一样。比如 memcache redis。 不同步,如何找到节点? 即数据写和读,是到同一个节点。2种方法: 1.顺序遍历 2.hash hash可以分为4种情况,见下文。 顺序遍历 缺点...

mysql-索引:B+树实现

"查找步骤1.先找叶子节点(page页)2.再找列值"

数据结构里的平衡多叉树 要理解索引的原理 有个前提 就是要先理解平衡多叉树这种数据结构 平衡树的作用就是1.插入数据快(链表的优点)2.查找数据快(数组的优点) 也就是说 平衡树这种数据结构兼顾了链表和数组的优点 多叉就是有多个节点 应用场景是磁盘的文件系统 数据库里的索引 索引使用的是平衡多叉树这种数据结构。 查找数据的流程: 1.先查找叶子节点(即page页,包含了多个列值) 2.再...