cannal源码赏析 - example模块
public class BaseCanalClientTest { protected final static Logger logger = LoggerFactory .getLogger(AbstractCanalClientTest.class); protected static final ...
public class BaseCanalClientTest { protected final static Logger logger = LoggerFactory .getLogger(AbstractCanalClientTest.class); protected static final ...
1. CanalConnector重点介绍RocketMQCanalConnector。 1.1 RocketMQCanalConnector-属性private String nameServer;private String topic;private String ...
1. MigrateMap1.1 源码public class MigrateMap { public static <K, V> ConcurrentMap<K, V> makeComputingMap(CacheBuilder<Object, Object> builder, ...
1. 介绍canal [kə’næl],基于数据库增量日志解析,提供增量数据订阅&消费。 1.1 MYSQL主备复制实现 master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events,可以通过show binlog events进行查看); slave将master的binary log events拷贝到它的中继日志(...
1. 调度器 1.1 借助InitializingBean接口启动@Componentpublic class XxlJobAdminConfig implements InitializingBean, DisposableBean { private static XxlJobAdminConfig adminConfig = null; public static...
1. SPI机制SPI 全称为 Service Provider Interface,是一种服务发现机制。 SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。正因此特性,我们可以很容易的通过 SPI 机制为我们的程序提供拓展功能。 2. Java SPI2.1 demo首先,定义接口; public inter...
这是rocketmq中封装的线程类org.apache.rocketmq.common.ServiceThread,rocketmq通过继承该线程类实现两个方法getServiceName()、run(),来实现对线程功能的增强。 public abstract class ServiceThread implements Runnable { protected stati...
1. TransmittableThreadLocal 怎么用?1.1 ThreadLocal使用子线程获取不到 父线程set到ThreadLocal所修饰变量的值; public class TtlTest { @Test public void Test001() { ThreadLocal<String> stringThrea...
1. 简介为构建锁和同步器提供基本的线程阻塞唤醒原语,LockSupport中的park()和unpark()的作用分别是阻塞线程和解除阻塞线程。类似于wait和notify,类似于await和signal。 2. 使用示例// 1. pack unpackpublic static void main(String[] args){ Thread t1 = new Thre...
Condition1. 使用Condition实现等待通知机制public class ConTest { final Lock lock = new ReentrantLock(); final Condition condition = lock.newCondition(); public static void main(String[] args) ...