Druid的segment 发表于 2018-04-13 | 分类于 druid 一个datasource的每个维度(列)会单独创建索引——倒排索引,每个维度有自己独立的倒排索引;指标维度不需要创建倒排索引,只需要保存起来,由于不需要进行聚合,所以保存的时候可以进行压缩。在最终保存的时候,所有的维度和指标对应的数据会组织在一个segment中,segment是按照时间段进行创建的 ... 阅读全文 »
Flink的checkpoint学习笔记 发表于 2018-04-13 | 分类于 flink 学习官方文档 数据流中消费到barrier n(第n个快照对应的barrier)的时候,flink会做一次checkpoin,生成一个snapshot。当出现故障之后,集群进入恢复阶段,会从最近的snapshot恢复出最新的快照。从当前快照的执行进度继续执行。 快照中需要记录消费的source的位置 ... 阅读全文 »
Spring依赖注入的bean装载 发表于 2018-03-22 | 分类于 spring 关于父类 通过spring装配的两个bean(A和B),都继承了一个父类,父类也是通过spring进行装配,spring容器初始化的时候,会装配这两个bean(A和B),这两个子类装配的时候,会分别初始化一次父类,也就是父类会初始化两次。再加上父类本身被装载,所以还有一次,总共三次。 java类 ... 阅读全文 »
JIT基本原理 发表于 2018-03-22 | 分类于 java JIT简介 JVM自动监控这所有方法的执行,如果某个方法是热点方法,JVM就计划把该方法的字节码代码编译成本地机器代码,同时还会在后续的执行过程中进行可能的更深层次的优化,编译成机器代码的过程是在独立线程中执行的,不会影响程序的执行;除次以外,JVM还对热点方法和很小的方法内联到调用方的方法中,减 ... 阅读全文 »
zookeeper的数据与存储 发表于 2018-03-22 | 分类于 zookeeper 内存数据 zookeeper的数据结构是一颗树,类似于linux的文件系统,但是更加简单轻量。zookeeper在内存中存储了整个树的内容,DataTree包括所有节点的路径、节点数据以及ACL信息等。 DataTree底层是一个典型的ConcurrentHashMap: key: 节点路径(p ... 阅读全文 »
mybatis+springboot配置多数据源 发表于 2018-03-20 | 分类于 mybatis 遇到的问题 无法使用类型别名的包扫描按照文档中的说明,只需要在sprinboot的配置文件中添加:mybatis.type-aliases-package=com.example.domain.model即可,但是自己的项目中的配置就不是不起作用。 问题分析官方文档中说的配置是针对mybatis自 ... 阅读全文 »
spring aop与动态代理 发表于 2018-03-20 | 分类于 spring aspectj AspectJ是静态代理的增强,所谓的静态代理就是AOP框架会在编译阶段生成AOP代理类,因此也称为编译时增强。 相比于动态代理,aspectJ有更好的性能,但是需要特定的编译器,编译之后生成的class相比于java的编译器生成的class,会添加代理相关的逻辑。 java的动 ... 阅读全文 »
zookeeper的通信协调 发表于 2018-03-18 | 分类于 zookeeper observer服务器 observer不需要将事务持久化到磁盘,一旦observer被重启,需要从leader重新同步整个名字空间。 依据Observer的特点。我们能够使用Observer做跨数据中心部署。假设把Leader和Follower分散到多个数据中心的话,由于数据中心之间的网络的延迟 ... 阅读全文 »
Druid基础架构 发表于 2018-03-18 | 分类于 druid 重要概念 dimension: 维度列 metrics: 指标列 集群角色 Historical历史节点,从deep storage中加载数据,并且创建索引 deep storage数据存储,例如HDFS broker接收client过来的查询请求,路由到Historical节点和Real ... 阅读全文 »