02 2018 档案
InnoDB行记录格式(compact)、InnoDB数据页结构
摘要:1. compact 行记录格式: 变长字段长度列表,null标志位,记录头信息,列1数据,列2数据 …… 记录头信息中包含许多信息,只列举一部分: 2. 页是InnoDB存储引擎管理数据库的最小磁盘单位。 File Header 部分字段: FIL_PAGE_TYPE的取值说明: 阅读全文
posted @ 2018-02-28 22:53 偶尔发呆 编辑
ScheduledThreadPoolExecutor
摘要:java提供了方便的定时器功能,代码示例: 接下来分析ScheduledThreadPoolExecutor: 调用scheduleWithFixedDelay方法,把任务添加到DelayedWorkQueue,并启动工作线程。 从队列中取任务的调用栈: 任务在执行的时候,会新建一个任务,放入队列中 阅读全文
posted @ 2018-02-28 15:42 偶尔发呆 编辑
InnoDB支持的最大事务数量
摘要:Innodb存储引擎有rollback segment,每个rollback segment中记录了1024个undo log segment,在每个undo log segment中进行undo页的申请。 从innodb1.1版本开始,支持最大128个rollback segment,即支持同时在 阅读全文
posted @ 2018-02-27 21:50 偶尔发呆 编辑
provider和consumer配置参数的优先级
摘要:<dubbo:service>和<dubbo:reference>存在一些相同的参数,例如:timeout,retries等,那么哪个配置的优先级高呢? consumer合并url参数的顺序为:override > -D >Consumer > Provider 调用栈: URL com.aliba 阅读全文
posted @ 2018-02-27 17:24 偶尔发呆 编辑
redis使用epoll
摘要:redis使用epoll的代码在ae_epoll.c文件中。 epoll_create:redis服务器在启动时,创建事件循环,调用epoll_create方法创建epoll实例。 epoll_ctl:当有新的客户端连接时,把新的连接描述符注册到epoll实例。 epoll_wait:调用epoll 阅读全文
posted @ 2018-02-26 15:49 偶尔发呆 阅读(3013) 评论(0) 推荐(0) 编辑
redis的文件事件
摘要:redis的文件事件:即与io相关的事件。 所有的文件事件放在aeEventLoop的数组中: 重点关注 events数组和fired数组,在(server.c) initServer中创建事件循环, 在(ae.c) aeCreateEventLoop中,为events数组和fired数组分配内存: 阅读全文
posted @ 2018-02-26 15:02 偶尔发呆 编辑
MySQL日志
摘要:在MySQL中,数据以页的形式存放。 redo log 为了避免数据丢失,事务数据库普遍采用write ahead log策略,当事务提交时,先写重做日志,再修改页。是事务(ACID)durability持久性的要求。当数据库宕机时,使用redo log恢复数据。 重做日志分为:redo log b 阅读全文
posted @ 2018-02-25 16:29 偶尔发呆 编辑
redis 处理命令的过程
摘要:redis版本:redis-3.2.9 在客户端输入 set name zhang,调试redis服务器,得到调用栈如下: 在dictReplace中加了断点,结果跳出来4个线程,redis还是单进程单线程吗? 上图的调用栈漏了一个栈帧:aeProcessEvents -> (networking. 阅读全文
posted @ 2018-02-24 15:44 偶尔发呆 编辑
redis中的"HashMap"
摘要:redis是一个存储键值对的内存数据库,其存储键值的方式和java中的HashMap相似。 表征redis数据库的结构体是redisDb (在server.h文件中),redis服务器默认有16个数据库,编号从0到15。 typedef struct redisDb { dict *dict; /* 阅读全文
posted @ 2018-02-24 11:32 偶尔发呆 编辑
两个区间存在交集
摘要:存在区间[a1,b1]和[a2, b2],当满足什么条件时,两个区间有交集? !(b1<a2 or b2<a1) 或 b1>=a2 and b2>=a1 阅读全文
posted @ 2018-02-24 10:28 偶尔发呆 编辑
mysql联合索引
摘要:假定数据表有一个包含2列的联合索引(a, b),则索引的B+树结构可能如下: 从图中可以看出:B+树先按a排序,然后按b排序,所以从全局看,a是全局有序的,而b则不是。 建表: 查看索引: 使用到联合索引: 未使用到联合索引: 阅读全文
posted @ 2018-02-13 15:29 偶尔发呆 编辑
HashMap
摘要:java version "1.7.0_67" HashMap的草图: Entry数组: 构造函数只是设置了 loadFactor 和 threshold 的值,所以table还是空的。 装填因子loadFactor默认为0.75,loadFactor = 键值对数量 / 数组大小 简单分析put操 阅读全文
posted @ 2018-02-11 17:05 偶尔发呆 编辑
zk常用命令
摘要:启动服务器:zkServer.sh start启动客户端:zkCli.sh -server 127.0.0.1:2181ls / 显示create /zk_test my_data 新建; create -e /zk_test my_data 是创建临时节点 -s 创建顺序节点,利用这个特性可以实现 阅读全文
posted @ 2018-02-10 21:38 偶尔发呆 编辑
redis常用命令
摘要:启动redis服务器:./redis-server (run the server with default conf)./redis-server /etc/redis/6379.conf./redis-server --port 7777./redis-server --port 7777 -- 阅读全文
posted @ 2018-02-10 11:48 偶尔发呆 编辑
CachedThreadPool里的线程是如何被回收的?
摘要:线程池创建线程的逻辑图: 我们分析CachedThreadPool线程池里的线程是如何被回收的。 牢牢记住CachedThreadPool的corePoolSize=0, maximumPoolSize=Integer.MAX_VALUE 工作线程的死循环: 当工作线程第二次获取的task等于nul 阅读全文
posted @ 2018-02-10 00:58 偶尔发呆 编辑
dubbo管理控制台搭建
摘要:1. 从网上下载dubbo管理控制台:dubbo-admin-2.5.4.war 2. 下载tomcat7,解压缩 3. 将tomcat7 webapps/ROOT的文件全部删除,然后把dubbo-admin-2.5.4.war的内容解压缩到ROOT目录中 4. 启动tomcat 5. 访问 htt 阅读全文
posted @ 2018-02-08 16:12 偶尔发呆 编辑
dubbo监控中心搭建
摘要:从网上下载了一个dubbo监控中心,地址忘了,文件名是dubbo-monitor-simple-2.5.3-assembly.tar.gz。 修改监控中心配置文件如下: bin目录下有启动脚本,start即可,启动监控中心后,访问地址是 localhost:9090 还需在provider和cons 阅读全文
posted @ 2018-02-08 15:19 偶尔发呆 编辑
dubbo provider如何对invoker进行export
摘要:如何把provider的invoker export出去:1)为原始对象加wrapper,生成invoker;2)给invoker加各种filter,启动监听服务;3)注册服务地址 以HelloService为例: ServiceConfig和<dubbo:service>基本对应上了。 一、生成i 阅读全文
posted @ 2018-02-05 16:15 偶尔发呆 编辑
spring的FactoryBean
摘要:(以下内容翻译自spring/docs/3.2.18.RELEASE) 为具有工厂属性的对象实现FactoryBean接口。FactoryBean接口是spring IoC 容器实例化逻辑的一点补充。如果你有一个复杂的对象,更适合用java代码描述而不是xml,你可以创建自己的FactoryBean 阅读全文
posted @ 2018-02-04 14:00 偶尔发呆 编辑
spring创建单例bean
摘要:(使用的spring版本是3.2.10) 在xml文件中配置一个普通的bean,默认使用单例,创建该bean的调用栈如下: ClassPathXmlApplicationContext AbstractApplicationContext 继承关系:DefaultListableBeanFactor 阅读全文
posted @ 2018-02-03 23:14 偶尔发呆 编辑
AtomicInteger
摘要:public class AtomicInteger extends Number implements java.io.Serializable { // setup to use Unsafe.compareAndSwapInt for updates private static final Unsafe unsafe = Unsafe.getUnsafe(); p... 阅读全文
posted @ 2018-02-01 21:25 偶尔发呆 编辑
EchoService
摘要:dubbo为consumer端的代理对象实现了EchoService接口。 使用示例: 原理: provider在EchoFilter中处理$echo请求: 阅读全文
posted @ 2018-02-01 17:17 偶尔发呆 编辑

点击右上角即可分享
微信分享提示