全部分类
学习笔记
68
源码阅读
10
技术应用
26
线上排查
5
部署指南
13
技术实战
2
技巧备忘
4
数据结构
9
持久化
9
Tablestore
1
项目管理
2
PRINCE2
1
影像空间
2
成为摄影师
1
城市之光
1
PMP
1
驴行天下
1
阳明心学
1
开发框架
7
框架
1
Zookeeper
2
技术
9
技术文档
6
操作系统初识
3
操作系统
1
网络
5
工作杂货
7
消息中间件
3
Redis
5
算法
2
JVM
6
基础
9
并发编程
1
《Git》学习笔记
14
更多
9
实用技巧
1
学习
7
随笔
1
《Vue》笔记
4
组件
2
心情杂货
1
博客搭建
3
# 前言
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
全部分类
学习笔记
68
源码阅读
10
技术应用
26
线上排查
5
部署指南
13
技术实战
2
技巧备忘
4
数据结构
9
持久化
9
Tablestore
1
项目管理
2
PRINCE2
1
影像空间
2
成为摄影师
1
城市之光
1
PMP
1
驴行天下
1
阳明心学
1
开发框架
7
框架
1
Zookeeper
2
技术
9
技术文档
6
操作系统初识
3
操作系统
1
网络
5
工作杂货
7
消息中间件
3
Redis
5
算法
2
JVM
6
基础
9
并发编程
1
《Git》学习笔记
14
更多
9
实用技巧
1
学习
7
随笔
1
《Vue》笔记
4
组件
2
心情杂货
1
博客搭建
3