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