# 前言
ReentrantLock是基于AQS框架的应用实现,具备AQS中的以下特性
阻塞等待队列
独占
公平/非公平
可重入
允许中断
ReentrantLock的核心实现
1.自旋 + CAS操作
2.CLH队列
双向队列
AQS当中的同步等待队列也称CLH队列,CLH队列是Craig、Landin、Hagersten三人 发明的一种基于双向链表数据结构的队列,是FIFO先入先出线程等待队列,Java中的CLH队列是原CLH队列的一个变种,线程由原自旋机制改为阻塞机制。
3.LocksSuport
LockSupport.park(thread);
LockSupport.unpark(thread);
提示
Canal + Kafka + Mysql 数据同步方案示例。
# 1 MySQL开启binlog
查看MySQLs是否开启了binlog及binlog-format是否ROW模式。
-- 查看数据库版本
select version();
-- 显示OFF未开启 ON开启
show variables like ‘log_bin’
-- binlog_format 有三种:ROW,STATEMENT,MIXID
show variables like 'binlog_format';
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
MySQL安装目录下修改my.ini。
-- 在mysqld下面添加
log_bin=mysql-bin
binlog-format=ROW
server-id=1
-- 进入命令行重启mysql
停止 net stop mysql57
启动 net start mysql57
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
赋予canal用户复制权限。
-- 创建用户
create user 'canal'@'%' identified by '123456';
-- REPLICATION CLIENT
-- REPLICATION SLAVE
-- 复制相关。一般复制账号需要这两个权限。
grant select,replication slave, replication client on *.* to 'canal'@'%';
-- 刷新权限
FLUSH PRIVILEGES;
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 1 项目简介
提示
目前 AsyncIAE
项目暂时仅实现了异步导出功能,异步导入功能待开发。
AsyncIAE
项目的出现主要是为了解决过去导出服务实现较繁琐,开发人员额外花在导出功能的工时较多的问题。
项目包括服务端 async-iae-server
和客户端 async-iae-client
两部分。
AsyncIAE
项目包括以下特性:
- 支持在查询接口上添加简单注解即可实现通用导出功能。
- 支持自定义动态列头;支持多行列头。
- 支持自定义导出逻辑,需在服务端实现指定接口。
- 支持超过指定条数导出压缩包。
- 支持通过指定阈值控制各业务类型的导出速度。
- 支持小于指定条数时直接同步导出到浏览器。
上一页
1 2 3 12
下一页