- 博客(10)
- 收藏
- 关注
原创 谁特么用Jackson啊
Jackson核心jar包<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.9.8</version></dependen...
2019-09-26 13:59:20 170
原创 啥?啥是控制反转,依赖注入啊!?
依赖倒置,控制反转,依赖注入及Google Guice1. 依赖倒置依赖字面意思事物之间具有的一种关系。在面向对象编程中我将其理解为一种对象之间引用的持有关系。任何系统都无法避免依赖,如果一个类或接口在系统中没有被依赖,那么他们就不应该出现在系统之中。举个简单的例子说明依赖关系:师徒四人去西天取经。我们说说唐僧,他有个徒弟,其他的东西我们暂且忽略。如果把唐僧师徒一个具体类的话,他在收服了悟空...
2019-09-26 13:58:15 146
原创 Druid历史节点懒加载实现分析
Druid 历史节点懒加载机制原理声明:此方案来自于gitHub,详情可见https://github.com/apache/incubator-druid/pull/69881. 解决问题Druid集群由多个节点共同提供服务,不同节点之间各司其职。其中Historical(历史节点)的作用主要是从HDFS上拉取segment到本地,提供这部分segment的查询服务和处理路由到本地的查...
2019-09-26 13:57:15 520
原创 JVM运行时数据区域及异常实战
声明: 《深入理解Java虚拟机 JVM高级特性与最佳实践 第2版》。以下内容来自书中第二章。1. JVM概述JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Ja...
2019-09-26 13:56:13 204
原创 Python实现在文本指定位置插入内容
1. 场景生产环境需要对大量的json文件进行写操作,在指定节点中插入一个属性。如下:{ "dataSources":{ "test_dataSource_hod":{ "spec":{ "dataSchema":{ "dataSource":"test_dataSource...
2019-09-26 13:54:54 9610
原创 Java多线程之原子操作
1. 相关概念**本地缓存:**程序运行时,为了提高运行的速度,CPU可以不直接跟内存进行通信,而是先将内存中的数据读到内部缓存,然后再进行操作。这样会提高效率,但是我们不知道本地缓存中的修改何时会回写到共享内存中;内存可见性:可见性的意思是当一个线程修改了一个共享变量时,其他的线程能够读到这个修改的值。(这句话我当初理解的有问题,导致我在修改的代码的时候掉进一个很大的坑里) ;共享内存...
2019-09-26 13:53:28 303
原创 Jackson之多态反序列化
1.场景描述JSON作为一种轻量级的数据交换格式,其清晰和简洁的结构能够轻松地与Java对象产生映射关系。例如,一个Coke(可口可乐)类的java代码如下:public class Coke{ String name = "Coke"; int capacity= 500; }用json描述该类: { "name":"Coke", "cap...
2019-09-26 13:52:20 779
原创 Druid.io查询分析
前言QueryId作为Druid区分查询的唯一标识,是我们定位查询问题有效的输入。用户查询有问题时,优先提供QueryId,如果在日志中捞不到的话,我们再根据dataSource名,interval以及查询装态来判断是哪条查询。Druid MetricsDruid 服务在运行时会将自身的一些metrics(指标信息)记录到日志文件中,也可以通过HTTP请求发送给其他的消息中间件,例如Ap...
2019-09-26 13:50:31 321
原创 火焰图实践
1. 场景描述:因为生产环境组件服务进程执行缓慢导致部分资源无法释放,进而引起了各种任务超时。研究源码发现,部分执行过长的是操作都是在单线程中串行 。这就意味着,单个过程的执行效率会影响到整个流程的调度周期。为此,我们需要对部分组件源码进行改造,串行改并行。串行改并行,我们要小心流程执行顺序之间的依赖关系和各个线程对共享变量的读写。这里的前提是我们得知道改哪里。其实我们的需求很明确,执行过程耗...
2019-09-26 13:49:14 270
原创 Druid Coordinator源码分析
前言Druid Coordinator 服务在整个Druid架构中的主要作用是协调Segments在历史节点之间的分布。其主要功能包括是segments在historical之间分布均衡,rules管理,segments清理合并等等。源码分析Druid 版本: druid-0.12.3DruidCoordinatorDruidCoordinator是Coordinator服务的入...
2019-09-26 13:46:16 302
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人