加载中
NIO基础之同步、异步、阻塞、非阻塞

这里区分几个概念,也是常见但是容易混淆的概念,就是标题中的同步、异步、阻塞、非阻塞。 一、同步与异步 同步与异步,关心的是消息通信的机制。也就是调用者和被调用者之间,消息是如何进行...

02/11 14:10
7
【源码分析】HashMap源码再读-基于Java8

最近工作不是太忙,准备再读读一些源码,想来想去,还是先从JDK的源码读起吧,毕竟很久不去读了,很多东西都生疏了。当然,还是先从炙手可热的HashMap,每次读都会有一些收获。当然,JDK8对H...

01/30 13:54
1K
我的公众号开通啦

ladies and 乡亲们,我新开通了一个公众号,分享一些自己所得,希望能得到您的关注,谢谢。

01/22 18:01
5
【Canal源码分析】TableMetaTSDB

这是Canal在新版本引入的一个内容,主要是为了解决由于历史的DDL导致表结构与现有表结构不一致,导致的同步失败的问题。采用的是Druid和Fastsql,来记录表结构到DB中,如果需要进行回滚时,得...

2018/05/31 13:49
17
【Canal源码分析】重要类图

从Canal的整体架构中,我们可以看出,在Canal中,比较重要的一些领域有Parser、Sink、Store、MetaManager、CanalServer、CanalInstance、CanalClient、Connection等等。下面我们仔细分析下C...

2018/05/31 10:52
29
【Canal源码分析】整体架构

本文详解canal的整体架构。 一、整体架构 说明: server代表一个canal运行实例,对应于一个jvm instance对应于一个数据队列 (1个server对应1..n个instance) instance模块: eventParser (数...

2018/05/30 17:25
23
【Canal源码分析】配置项

本文讲解canal中的一些配置含义。 一、配置加载图 二、配置文件canal.properties 2.1 common参数定义 比如可以将instance.properties的公用参数,抽取放置到这里,这样每个instance启动的时候...

2018/05/30 16:33
30
【Canal源码分析】数据传输协议

Canal的数据传输有两块,一块是进行binlog订阅时,binlog转换为我们所定义的Message,第二块是client与server进行TCP交互时,传输的TCP协议。 一、EntryProtocal 这块是binlog的一个存储。主...

2018/05/30 14:08
6
【Canal源码分析】client工作过程

client的工作过程,需要我们自己去编写对应的逻辑,我们目前只能从example写的例子来看。目前examle中提供了两个例子,一个是单机的,一个是集群的cluster,我们后续如果需要进行开发的话,其...

2018/05/29 16:44
157
【Canal源码分析】Sink及Store工作过程

一、序列图 二、源码分析 2.1 Sink Sink阶段所做的事情,就是根据一定的规则,对binlog数据进行一定的过滤。我们之前跟踪过parser过程的代码,发现在parser完成后,会把数据放到一个环形队列...

2018/05/25 15:01
25
【Canal源码分析】Canal Instance启动和停止

一、序列图 1.1 启动 1.2 停止 二、源码分析 2.1 启动 这部分代码其实在ServerRunningMonitor的start()方法中。针对不同的destination,启动不同的CanalInstance。主要的方法在于initRunning...

2018/05/24 17:53
91
【Canal源码分析】Canal Server的启动和停止过程

本文主要解析下canal server的启动过程,希望能有所收获。 一、序列图 1.1 启动 1.2 停止 二、源码分析 整个server启动的过程比较复杂,看图难以理解,需要辅以文字说明。 首先程序的入口在C...

2018/05/24 15:28
40
【Canal源码分析】parser工作过程

本文主要分析的部分是instance启动时,parser的一个启动和工作过程。主要关注的是AbstractEventParser的start()方法中的parseThread。 一、序列图 二、源码分析 parseThread中包含的内容比较...

2018/05/24 11:01
45
【Canal源码分析】Binlog的寻找过程

binlog的寻找过程可能的场景如下: instance第一次启动 发生数据库主备切换 canal server HA情况下的切换 所以这个过程是能够保证binlog不丢失的关键点。 本文从源码的角度来分析下启动过程中...

2018/05/23 22:17
88
【Otter】otter代码在IDEA远程DEBUG方法

众所周知,Otter的代码打包后,是通过Jetty启动的,Otter代码的启动脚本中自带了开启Jetty远程DEBUG的脚本,所以我们只需要在启动Otter Manager和Otter Node的时候,带上如下参数: sh start...

2018/02/01 14:06
51
【源码】otter工程结构

最近在搞数据同步相关的内容,需要对otter的代码进行扩展,所以需要先熟悉一下otter的源码。首先我们整体来看下otter的工程结构。otter的工程结构比较复杂,需要花费一定的时间来理解各个部分...

2018/01/22 14:51
44
一个Java程序员的2018年展望与2017年总结

回顾2017年,可以说是对我而言有重大转折的一年。我们选择放弃了北京,来到了杭州,开始了新的生活。房子的事情也基本上落实了,虽然其中经历了种种坎坷,但是结局还是美好的,现在在等贷款放...

2018/01/02 09:38
118
【源码解析】Sharding-Jdbc模块分析

最新的2.0版本的Sharding-Jdbc版本,由于需要支持动态配置加载,所以最新的模块信息如下: |-sharding-jdbc |-sharding-jdbc-core |-api |-constant |-exceptio...

2017/11/20 16:36
84
【Kafka源码】KafkaConsumer

[TOC] KafkaConsumer是从kafka集群消费消息的客户端。这是kafka的高级消费者,而SimpleConsumer是kafka的低级消费者。何为高级?何为低级? 我们所谓的高级,就是可以自动处理kafka集群的失败...

2017/11/16 13:32
62
【Kafka源码】处理请求

[TOC] 在KafkaServer中的入口在: apis = new KafkaApis(socketServer.requestChannel, replicaManager, groupCoordinator, kafkaController, zkUtils, config.brokerId, config, m...

2017/11/15 10:43
17

没有更多内容

加载失败,请刷新页面

返回顶部
顶部