cannal源码赏析- client模块
1. RocketMQCanalConnector1.1 属性1234567891011121314151617private String nameServer;private String topic;private String ...
1. RocketMQCanalConnector1.1 属性1234567891011121314151617private String nameServer;private String topic;private String ...
1. MigrateMap1.1 源码1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939...
1. 调度器 1.1 借助InitializingBean接口启动1234567891011121314151617181920212223242526272829@Componentpublic class XxlJobAdminConfig implements InitializingBean, DisposableBean { private static XxlJo...
1. SPI机制SPI 全称为 Service Provider Interface,是一种服务发现机制。 SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。正因此特性,我们可以很容易的通过 SPI 机制为我们的程序提供拓展功能。 2. Java SPI2.1 demo首先,定义接口; 1234public i...
这是rocketmq中封装的线程类org.apache.rocketmq.common.ServiceThread,rocketmq通过继承该线程类实现两个方法getServiceName()、run(),来实现对线程功能的增强。 123456789101112131415161718192021222324252627282930313233343536373839404142434445...
1. TransmittableThreadLocal 怎么用?1.1 ThreadLocal使用子线程获取不到 父线程set到ThreadLocal所修饰变量的值; 123456789101112public class TtlTest { @Test public void Test001() { ThreadLocal<String&...
1. 简介为构建锁和同步器提供基本的线程阻塞唤醒原语,LockSupport中的park()和unpark()的作用分别是阻塞线程和解除阻塞线程。类似于wait和notify,类似于await和signal。 2. 使用示例1234567891011121314151617181920212223242526272829303132333435363738394041424344454647...
Condition1. 使用Condition实现等待通知机制12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455public class ConTest { final Lock lock = new ReentrantLoc...
1. FeatureTaskFutureTask是Runnable, Future接口的实现类; 1234567891011121314151617181920212223242526{ FutureTask<String> futureTask = new FutureTask<String>( () -> { Syst...
如何中断一个线程?1. while循环判断interrupt标识1234567891011121314151617181920212223242526272829{ Thread t1 = new Thread(() -> { while (true) { if(Thread.currentThread().isI...