3 _laomei_

尚未进行身份认证

Debezium Contributor; Schema Registry Contributor; 大数据搬砖工

等级
TA的排名 2w+

filebeat 写IO巨高的问题

在批量部署filebeat6.2.x后,发现个位数的机器,写IO巨高,大概有20M/s。并且发现,只要开启了include正则后才会出现这个情况,注释掉正则后恢复正常。后面搜索了一下这个问题,大概是因为filebeat在写registry这份文件导致写io高。registry用来记录offset,当filebeat采集的大量日志,只有很少部分匹配正则时,会导致registry疯狂的写。可...

2019-09-17 09:57:03

HBase 入门

本文只涉及最基础的概念,做个记录基础概念Namespacenamespace类似mysql的database,一个namespace含有多个table。TableHbase表包含许多的行(Row)RowHBase的一行包含一个rowkey和一或多个其它列。HBase中Row会根据RowKey按照字典序排序。RowKey在表中会被作为索引。Column在HBase中,一列由c...

2019-08-28 12:16:58

filebeat 数据采集流程

filebeat启动流程讲解了filebeat的启动流程,filebeat在构建完crawler对象,开始采集流程。Crawler的start方法内,会启动Inputsfunc(c*Crawler)Start( pipelinebeat.Pipeline, r*registrar.Registrar, configInputs*common.Config, config...

2019-07-24 15:45:27

filebeat 启动流程

因为各种各样的原因,好久没有写博客了,还是希望能够坚持下来讲解一下filebeat的启动流程吧,核心功能先不描述了0.0filebeat启动入口在main.go文件内,cmd.RootCmd.Execute()启动filebeat;funcmain(){ iferr:=cmd.RootCmd.Execute();err!=nil{ os.Exit(1) }}...

2019-07-24 11:12:26

mac 安装多个版本的 jdk

最近打算研究一下elasticsearch,看一下某些代码实现,于是拉了一下代码。吼,这个项目还真是大,拉代码就挺久。然后用idea打开,发现master竟然要jdk11,切到6.5分支竟然也要jdk10,自己的电脑装的是jdk8,瞬间感觉有点xxx。于是查了一下mac下怎么配置多个jdk。准备工作如果没有homebrew,先装一下homebrew。第一步brewinstallje...

2019-05-08 14:56:00

kubernetes StatefulSet 部署 elasticsearch cluster

使用KubernetesStatefulSet部署Elasticsearch.Service配置下面是一份elasticsearchservice的配置。apiVersion:v1kind:Servicemetadata:name:es-cluster-nodespec:clusterIP:Noneselector:app:es-cluste...

2019-05-07 12:03:16

中间件和业务类加载隔离

Overview我对类隔离简单的理解:在一个应用内,有类名为clazz,模块A使用了clazz,模块B也使用了clazz。模块A不会用到模块BClassLoader加载的clazz,模块B不会用到模块AClassLoader加载的clazz。例如下图,App用到的中间件依赖了ClassA,App也依赖了ClassA。通过类隔离后,App不会使用用中间件依赖的ClassA,中间件不会使用...

2019-04-03 15:33:40

JVM基础知识和ASM修改字节码

本文会介绍一下ASM的简单使用和一些JVM相关的知识,但是不会很详细的涵盖所有内容。为了方便理解,我会分别介绍以下内容JVM基础知识Java字节码基础知识ASM基础使用JVM基础知识因为字节码中的指令执行和JVM相关,所以需要先介绍一下JVM基础知识。JVM虚拟机栈对Java稍有了解的开发人员,应该都知道JVM有一个Java虚拟机栈,栈中的每一个元素被称为Frame(栈帧)...

2019-03-04 14:02:11

Debezium 如何处理 DDL

Mysql的数据变更(ddl,dml)在debezium都对应一个事件,不同的事件Debezium内部会有不同的处理逻辑。Debezium在内存里会维护订阅的所有表的schema信息。当有DDL事件发生时,Debezium会获取到DDL的语句,将DDL作用于内存的表,那么内存中维护的表结构就能和数据库中的表结构一致。当某个表的数据被更新时,假设是insert,Debezium捕获到变更,随后...

2019-02-27 22:05:43

@KafkaListener注解解密

本文会介绍一下@KafkaListener的工作流程,但是不会详细深入。@KafkaListener如何使用spring-kafka使用基于@KafkaListener注解,@KafkaListener使用方式如下@KafkaListener(topics="xxx")publicvoidtestListen(List<ConsumerRecord<xxx,xxx&...

2019-01-31 14:14:10

aspectj 和 lombok

前段时间要做一个本地方法调用链工具,显示方法耗等。为了竟可能的不影响性能,所以采用了aspectj编译期织入的方式,记录一些数据。aspectj编译期织入需要特殊的compiler,要额外添加mavenplugin。代码写的差不多,能够满足需求了。然后随便找了个项目一试,发现aspectj竟然和lombok不能一起工作,aspectj编译期会提示找不到lombok生成的那些方法。因为...

2019-01-13 14:25:59

2018简单回顾一下

生活今天是2018年的最后一天,回顾今年一整年,有太多的感慨。2018年对我来说是非常特别的一年。今年我毕业了~~,从原来的实习生转正为正式员工,一个非常大的转变。从校园到社会,真的感觉眨眼之间。算了balabala...不说了。技术2018成功的给debezium提了个pr,啊哈哈。感觉社区的2个维护者还是很友好的,给了我一些建议~~。在公司我曾经是debeziumkafka系统的维...

2018-12-31 21:34:13

Java 使用 JGit 执行 Git 命令

某些时候需要使用Java代码执行Git操作,可以使用JGit来实现。<dependency><groupId>org.eclipse.jgit</groupId><artifactId>org.eclipse.jgit</artifactId><version>4.9.3.20180731100...

2018-12-27 18:00:52

Java 代码解析 mvn dependency tree 结果

com.qunhe.middleware:audit-client:jar:0.2.4.RELEASE+-org.projectlombok:lombok:jar:1.16.18:compile+-org.springframework.cloud:spring-cloud-starter-feign:jar:1.3.5.RELEASE:compile|+-org.springfr...

2018-12-27 17:49:14

Java 代码调用 Maven 命令

某些情况下,需要通过Java代码来调用maven命令,可以依据以下的方式来做到maven依赖<dependency><groupId>org.apache.maven.shared</groupId><artifactId>maven-invoker</artifactId&amp

2018-12-27 17:39:45

Java 代码解析 maven pom.xml 文件

在某些情况下需要使用java代码解析pom.xml文件。使用方式如下maven依赖<dependency><groupId>org.apache.maven</groupId><artifactId>maven-model</artifactId>&amp

2018-12-27 17:38:03

Spring Configuration注解

Spring@Configuration标识的class,能够作为Spring的配置类,用来构建Bean,引入资源文件等等功能。所以有必要理解一下它是如何工作的。注册ConfigurationClassPostProcessorBean此注解的核心处理逻辑在ConfigurationClassPostProcessor类中,此类实现了BeanDefinitionRegistryPostP...

2018-10-18 23:19:11

Spring Boot ConfigurationProperties注解

SpringBootConfigurationProperties注解能够将Propeties和加了此注解的类属性绑定。那么它是如何工作的?构建ConfigurationPropertiesBindingPostProcessorbean在SpringBoot中此注解相关的核心处理逻辑在ConfigurationPropertiesBindingPostProcessor类,实现了B...

2018-10-16 21:56:27

java spi实现原理

javaspi内部实现也是基于ClassLoader机制。javaspi核心类是ServiceLoader,现在看它的实现逻辑;ServiceLoader内部含有一私有类LazyIterator,继承Iterator,封装了spi具体实现。privateclassLazyIteratorimplementsIterator<S>{Class<S&gt...

2018-10-15 10:25:10

java spi

容器希望中间件只提供相关的connector依赖给业务方使用,而不是具体的实现。通过connector带来的好处就是,中间件升级jar包,不会影响业务方的使用,业务方对其无感知。并且业务代码里也不会引入多于的jar包,导致不必要的jar冲突。Java6hasintroducedafeaturefordiscoveringandloadingimplementationsm...

2018-10-15 10:24:53

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。