edyang

我干了什么 究竟拿了时间换了什么
技术分享时间线软件开发、设备接入、视觉与运维实践

Spring Cloud Eureka:注册成功不等于所有调用方立刻可见

服务已经注册,另一端暂时找不到实例,可能是注册、缓存和拉取周期共同作用。

服务已经注册,另一端暂时找不到实例,可能是注册、缓存和拉取周期共同作用。 本文使用Spring Cloud 1.0 系列与其匹配的 Spring Boot 1.2,配置为结构片段。Spring Cloud(分布式应用工具集)把配置、注册、调用和容错连接起来,但远程调用依然会超时或产生不确定结果。服务拆分之前先明确每个数据的归属。 1. 从现象推到机制 Eureka(服务注册组件)维护实...

Spring Cloud 学习:先划服务边界,再接注册中心

把单体每个模块都拆成服务,可能只增加远程调用和部署成本。

把单体每个模块都拆成服务,可能只增加远程调用和部署成本。边界应来自业务与数据责任。 本文使用Spring Cloud 1.0 系列与其匹配的 Spring Boot 1.2,配置为结构片段。Spring Cloud(分布式应用工具集)把配置、注册、调用和容错连接起来,但远程调用依然会超时或产生不确定结果。服务拆分之前先明确每个数据的归属。 1. 从现象推到机制 服务需要有相对独立的规则...

深入 MySQL:读写分离为什么会读到旧数据

写入主库后立刻从副本读取,可能看不到刚刚提交的记录。

写入主库后立刻从副本读取,可能看不到刚刚提交的记录。复制链路存在延迟。 本文使用MySQL 5.6、InnoDB 与独立测试数据库。数据库研究要同时观察表结构、数据分布和实际语句。本文讨论 InnoDB(事务存储引擎),不把其他存储引擎或后续版本特性当作相同行为。 1. 从现象推到机制 异步复制需要把主库变更传输并在副本应用,网络与执行速度都会影响进度。读写分离增加读取入口,却不自动提...

深入 MySQL:redo log 与 binlog 各自解决什么

都叫日志,redo 与 binlog 却处在不同层次。

都叫日志,redo 与 binlog 却处在不同层次。备份、恢复和复制不能把它们当成可互换文件。 本文使用MySQL 5.6、InnoDB 与独立测试数据库。数据库研究要同时观察表结构、数据分布和实际语句。本文讨论 InnoDB(事务存储引擎),不把其他存储引擎或后续版本特性当作相同行为。 1. 从现象推到机制 redo(重做日志)支持存储引擎崩溃恢复,binlog(二进制日志)记录服...

深入 MySQL:EXPLAIN 的估计不能当成实测

执行计划有 rows 数字,但它不是本次查询真实扫描行数。

执行计划有 rows 数字,但它不是本次查询真实扫描行数。理解估计和观察之间的区别很关键。 本文使用MySQL 5.6、InnoDB 与独立测试数据库。数据库研究要同时观察表结构、数据分布和实际语句。本文讨论 InnoDB(事务存储引擎),不把其他存储引擎或后续版本特性当作相同行为。 1. 从现象推到机制 优化器根据统计信息估算访问成本,选择索引和连接顺序。数据分布偏斜、统计陈旧与条件...

深入 MySQL:死锁要从等待环看起

死锁不是某条 SQL 天生有问题,而是多个事务的持锁与等待形成了环。

死锁不是某条 SQL 天生有问题,而是多个事务的持锁与等待形成了环。 本文使用MySQL 5.6、InnoDB 与独立测试数据库。数据库研究要同时观察表结构、数据分布和实际语句。本文讨论 InnoDB(事务存储引擎),不把其他存储引擎或后续版本特性当作相同行为。 1. 从现象推到机制 两个事务以相反顺序更新两行,都拿到第一行锁后再等对方的第二行,就构成环。统一锁顺序可以减少这一类问题,...

Linux tomcat https访问设置

小计安装过程

记录tomcat https 配置 1 2 3 keytool -export -trustcacerts -alias tomcat -file server.cer -keystore server.keystore -storepass 900930 sudo /usr/lib/jvm/jdk7/bin/keytool -import -trustcacerts -alias t...

深入 MySQL:一致性读与当前读分开理解

同一事务先后读取数据是否变化,与隔离级别和读取类型都有关系。

同一事务先后读取数据是否变化,与隔离级别和读取类型都有关系。不能用“加了事务”一句话解释。 本文使用MySQL 5.6、InnoDB 与独立测试数据库。数据库研究要同时观察表结构、数据分布和实际语句。本文讨论 InnoDB(事务存储引擎),不把其他存储引擎或后续版本特性当作相同行为。 1. 从现象推到机制 InnoDB 的一致性读取利用版本信息构造可见结果,锁定读取则面向需要锁住的当前...

Ubuntu 12.4 安装Docker

小计安装过程

看下我们的Ubuntu版本命令: 1 root@linuxidc:~# cat /etc/issueUbuntu 12.04.5 LTS \n \l 再来看下内核,命令: 1 root@linuxidc:~# uname -r3.2.0-67-generic 很不幸我的内核版本没有达到官方要求,没关系,我们接下来用下面的命令升级内核: 1 2 sudo apt-get inst...

深入 MySQL:联合索引怎样利用最左前缀

索引包含三个字段,不意味着任意一个字段单独查询都能获得相同收益。

索引包含三个字段,不意味着任意一个字段单独查询都能获得相同收益。 本文使用MySQL 5.6、InnoDB 与独立测试数据库。数据库研究要同时观察表结构、数据分布和实际语句。本文讨论 InnoDB(事务存储引擎),不把其他存储引擎或后续版本特性当作相同行为。 1. 从现象推到机制 联合 B-tree(平衡树索引)按字段顺序组织键值。前导等值条件可以缩小连续范围,范围条件之后的字段未必还...