Compare commits
411 Commits
canal-1.1.
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
87be50e876 | ||
|
|
e20e442446 | ||
|
|
08d736b33f | ||
|
|
cf628769d6 | ||
|
|
cf97b2ae31 | ||
|
|
ac6242bae9 | ||
|
|
c24307c893 | ||
|
|
a97d841737 | ||
|
|
8a5dc38a58 | ||
|
|
5110cfd49d | ||
|
|
da7ab64d55 | ||
|
|
09382c6b91 | ||
|
|
69a06dba09 | ||
|
|
1a265c8960 | ||
|
|
24877fdf03 | ||
|
|
c0de979595 | ||
|
|
fcadf564ba | ||
|
|
54c84b1535 | ||
|
|
4ded2869c9 | ||
|
|
f07a075dce | ||
|
|
dcea8afc93 | ||
|
|
c0619c4217 | ||
|
|
8a4199a7b0 | ||
|
|
79338be02d | ||
|
|
d18bde71c6 | ||
|
|
5a5e60d371 | ||
|
|
af9375440d | ||
|
|
9f2fc7409f | ||
|
|
556d998db1 | ||
|
|
25501db3ac | ||
|
|
8523a51623 | ||
|
|
16831825b8 | ||
|
|
1e37fe2dee | ||
|
|
5607444bad | ||
|
|
3a7223e460 | ||
|
|
553438e227 | ||
|
|
a3ea3d32d9 | ||
|
|
50a570290a | ||
|
|
6b7ddbbe92 | ||
|
|
2b53164253 | ||
|
|
e101287c25 | ||
|
|
b153e61f0d | ||
|
|
9bd4357f37 | ||
|
|
dad209feb8 | ||
|
|
e21e98aa83 | ||
|
|
c998b3f100 | ||
|
|
c15129b0ac | ||
|
|
0741ccda1e | ||
|
|
02fffc9e74 | ||
|
|
5ca4c39313 | ||
|
|
3162d7093d | ||
|
|
f350fbdc0a | ||
|
|
2d0dcf0e5d | ||
|
|
515c05c873 | ||
|
|
7ee551cbf7 | ||
|
|
923675aa49 | ||
|
|
ebb541001c | ||
|
|
44ed76ebb8 | ||
|
|
fe836f7515 | ||
|
|
b30544c750 | ||
|
|
66483ef83f | ||
|
|
b391188baf | ||
|
|
2a7a507987 | ||
|
|
f53749bfc5 | ||
|
|
80ca4366db | ||
|
|
be0d945d7d | ||
|
|
5a968b3715 | ||
|
|
1e5b8a2021 | ||
|
|
ff82fd6532 | ||
|
|
b060f46ccf | ||
|
|
7e31b40531 | ||
|
|
b2b3223d1d | ||
|
|
fea4d8210a | ||
|
|
fb3d2c6811 | ||
|
|
3439c48948 | ||
|
|
2b8a309ec7 | ||
|
|
9373429015 | ||
|
|
9493ff733d | ||
|
|
31530dc9af | ||
|
|
b0f3ff8dcc | ||
|
|
5c61f2fb56 | ||
|
|
7bb619cf12 | ||
|
|
d66a15fe35 | ||
|
|
aa05d8e2a0 | ||
|
|
5ff6449620 | ||
|
|
bbea802914 | ||
|
|
e2219c88dd | ||
|
|
a92e61f5a9 | ||
|
|
eaacc01b77 | ||
|
|
caa46f3672 | ||
|
|
c0ff058fe1 | ||
|
|
059f21208d | ||
|
|
8ca900377a | ||
|
|
6dffcc8573 | ||
|
|
711971599f | ||
|
|
87c7a95523 | ||
|
|
e255baff11 | ||
|
|
d457cd835e | ||
|
|
cf9c64629e | ||
|
|
307547746c | ||
|
|
c7d5ed4ba1 | ||
|
|
b9ed5caf05 | ||
|
|
348d218120 | ||
|
|
e2a64daad8 | ||
|
|
1413cc9196 | ||
|
|
04c11ec8eb | ||
|
|
54145ced5e | ||
|
|
fb35dd4254 | ||
|
|
e233bec66a | ||
|
|
67e0928d80 | ||
|
|
93dac2d335 | ||
|
|
9baeff55e4 | ||
|
|
ca79258e4f | ||
|
|
0e4c5c40d7 | ||
|
|
c65477d97a | ||
|
|
fc3cfc5c0c | ||
|
|
b4074206ca | ||
|
|
98677c5bc8 | ||
|
|
2c7e918f30 | ||
|
|
163f719971 | ||
|
|
55a5e7592b | ||
|
|
259008a7cd | ||
|
|
26ba84e27e | ||
|
|
c8ef9552ec | ||
|
|
bff394042a | ||
|
|
b322201889 | ||
|
|
ea8949298f | ||
|
|
ba924b9f1d | ||
|
|
7e0061fe93 | ||
|
|
6440b744f2 | ||
|
|
066b022bb3 | ||
|
|
738f41049f | ||
|
|
0f6b9d156a | ||
|
|
ed754b5203 | ||
|
|
11f89163c1 | ||
|
|
cda330e49e | ||
|
|
f9f810226d | ||
|
|
d4a09704f2 | ||
|
|
34e9440383 | ||
|
|
d623bea71a | ||
|
|
5ea9259f0d | ||
|
|
a216b55010 | ||
|
|
2786e06ccf | ||
|
|
63dfbf65df | ||
|
|
d90066e01b | ||
|
|
69cfbabb10 | ||
|
|
ab30f3bd8d | ||
|
|
681d03fbe7 | ||
|
|
f13cc4ee9f | ||
|
|
252ca0279f | ||
|
|
7241af84f7 | ||
|
|
159457cccd | ||
|
|
d8a70d0c2f | ||
|
|
ec247114fd | ||
|
|
f067f761c7 | ||
|
|
d4c8780f26 | ||
|
|
894ef6e610 | ||
|
|
cc75d3dda4 | ||
|
|
d8169cbf71 | ||
|
|
fccc6bc816 | ||
|
|
97aa441bca | ||
|
|
b8c2a757a0 | ||
|
|
c8de48bbd5 | ||
|
|
08239ef23f | ||
|
|
04a2b6f941 | ||
|
|
5f667c3574 | ||
|
|
bfb8cf4190 | ||
|
|
18c38ee057 | ||
|
|
82b3aed62b | ||
|
|
a04a1912a8 | ||
|
|
5d7d19fdb1 | ||
|
|
9edbe7e827 | ||
|
|
b52c5d149b | ||
|
|
aada80ba38 | ||
|
|
a10698e4a8 | ||
|
|
9d0a37241f | ||
|
|
41a2a87a91 | ||
|
|
62c4333790 | ||
|
|
ea8fb5e5b8 | ||
|
|
cd798b71e9 | ||
|
|
b937ee613d | ||
|
|
9c6f6f5cdf | ||
|
|
869e831b04 | ||
|
|
f7a4979b15 | ||
|
|
afef45500e | ||
|
|
4c7cdbc7f3 | ||
|
|
279d503cf4 | ||
|
|
272b1d5d11 | ||
|
|
fa0c08c170 | ||
|
|
10ff148aba | ||
|
|
571fa0d6fb | ||
|
|
aa29f12d96 | ||
|
|
3bceb07c44 | ||
|
|
c16d6e7729 | ||
|
|
fb6981356f | ||
|
|
c055737e24 | ||
|
|
ef7e21e4b2 | ||
|
|
ce916ee407 | ||
|
|
92758b8c87 | ||
|
|
7585d9c98b | ||
|
|
9d37bb87b7 | ||
|
|
2faecec749 | ||
|
|
0ef7b28c03 | ||
|
|
41bf3e2289 | ||
|
|
4d4199c801 | ||
|
|
b390e74a18 | ||
|
|
72c0e24cfd | ||
|
|
3dc86330a8 | ||
|
|
eee73dc4b1 | ||
|
|
a96db39420 | ||
|
|
bac1d543f1 | ||
|
|
753fad6639 | ||
|
|
bc4dceea1a | ||
|
|
7aaee7b439 | ||
|
|
e19bf1ecff | ||
|
|
a99dc0cbe8 | ||
|
|
7b8ff04d20 | ||
|
|
7ee246ca5a | ||
|
|
54c645f315 | ||
|
|
6c81ab6fdc | ||
|
|
99aefaa118 | ||
|
|
e2248b3d35 | ||
|
|
eef1ee85fb | ||
|
|
7dfec19c68 | ||
|
|
05a52f1bd3 | ||
|
|
fb0f274ba8 | ||
|
|
d71a208123 | ||
|
|
656a1d23c2 | ||
|
|
a574b91fdf | ||
|
|
e41e903984 | ||
|
|
4a22d72ef4 | ||
|
|
b7eff723a3 | ||
|
|
9b9cfe4037 | ||
|
|
ee51f338e0 | ||
|
|
4315f203a2 | ||
|
|
b12945d4a9 | ||
|
|
885f05fb6a | ||
|
|
591126ee6b | ||
|
|
af432bf10a | ||
|
|
b532e90ff4 | ||
|
|
e48bc35f35 | ||
|
|
11a5f2a0fa | ||
|
|
c775478a56 | ||
|
|
bd1f91cd9c | ||
|
|
67e85d201c | ||
|
|
6965726dfe | ||
|
|
c0001afe8f | ||
|
|
977031a666 | ||
|
|
bd3224eea1 | ||
|
|
33733aef25 | ||
|
|
25be0259a4 | ||
|
|
8114d77a20 | ||
|
|
571e7f4e25 | ||
|
|
ead91433d7 | ||
|
|
bac016f89e | ||
|
|
8804647c30 | ||
|
|
2623d08b8c | ||
|
|
622fed84ce | ||
|
|
9f5e8fd1c4 | ||
|
|
88d472ef1e | ||
|
|
2987d08161 | ||
|
|
b54bea5e33 | ||
|
|
c42ba95eed | ||
|
|
b48c434ffd | ||
|
|
2c892fce9b | ||
|
|
3bb49e19d2 | ||
|
|
f26b84ffc2 | ||
|
|
0a2254eeaf | ||
|
|
40d840375f | ||
|
|
5b6fd8094a | ||
|
|
4ce401d219 | ||
|
|
de95a6a128 | ||
|
|
9e11c3c018 | ||
|
|
d67bea8f3d | ||
|
|
997957d6e0 | ||
|
|
ea20076a32 | ||
|
|
2550d8eb65 | ||
|
|
31a0fdc807 | ||
|
|
d79431c7e5 | ||
|
|
911711248c | ||
|
|
63407dc570 | ||
|
|
3c20fd09ad | ||
|
|
eef3bd92ba | ||
|
|
474063af3b | ||
|
|
5cc85ff2de | ||
|
|
64862503ba | ||
|
|
f9e0dc7daa | ||
|
|
0c399509a9 | ||
|
|
a09cd9adb5 | ||
|
|
1369418c6a | ||
|
|
75174a63af | ||
|
|
17f4ee13e7 | ||
|
|
f0417502f8 | ||
|
|
a7720b51e4 | ||
|
|
21904ef1dc | ||
|
|
94425223bd | ||
|
|
7857df9701 | ||
|
|
64ea4ff222 | ||
|
|
85df89f777 | ||
|
|
a0f8e182ec | ||
|
|
33721d0394 | ||
|
|
91bddfeed6 | ||
|
|
25feab4af8 | ||
|
|
f66baeabf1 | ||
|
|
b1dc3821ea | ||
|
|
f5f79104eb | ||
|
|
e8d138d3bd | ||
|
|
32d9e58915 | ||
|
|
58448e559d | ||
|
|
fede3b3d1d | ||
|
|
5d8ec31bc4 | ||
|
|
82b18ebe62 | ||
|
|
66408782b0 | ||
|
|
846c8870ae | ||
|
|
8cfb07f07e | ||
|
|
d741425895 | ||
|
|
20add85ff6 | ||
|
|
a5c09c521e | ||
|
|
c94276b1ac | ||
|
|
272d575c78 | ||
|
|
693f8d501a | ||
|
|
bb1b6b9862 | ||
|
|
8ed82caaef | ||
|
|
de1dd70609 | ||
|
|
09429c241f | ||
|
|
9a332940d7 | ||
|
|
362974b1c2 | ||
|
|
435db30b7b | ||
|
|
e7de8289cd | ||
|
|
5065fea963 | ||
|
|
6989eb3d2b | ||
|
|
df24596092 | ||
|
|
43c23ffb97 | ||
|
|
e7658879bc | ||
|
|
df60eda679 | ||
|
|
b81e9dfeb8 | ||
|
|
b79af46054 | ||
|
|
90bf9e6de5 | ||
|
|
182163c3bd | ||
|
|
e4726972de | ||
|
|
985892cf7e | ||
|
|
746d51e621 | ||
|
|
cdd077b758 | ||
|
|
72ae7ba8d7 | ||
|
|
b82c8bca83 | ||
|
|
576406a4ce | ||
|
|
b5b08e92e3 | ||
|
|
9f6021cf36 | ||
|
|
0e3d719a39 | ||
|
|
afbf125231 | ||
|
|
b2b2a82554 | ||
|
|
30a1b067a8 | ||
|
|
beaca165d0 | ||
|
|
c21c18458b | ||
|
|
5e761e14fa | ||
|
|
18418ebd98 | ||
|
|
92f04f86cb | ||
|
|
0d5505aa2c | ||
|
|
bd56438eca | ||
|
|
b9a157657f | ||
|
|
523e8b85e6 | ||
|
|
ab74b2c82c | ||
|
|
265a8e8594 | ||
|
|
4fc7e5f7d9 | ||
|
|
9cc8caa834 | ||
|
|
a71375dad5 | ||
|
|
70d8a379f2 | ||
|
|
b6333f018f | ||
|
|
31acfc0101 | ||
|
|
6d9ea57186 | ||
|
|
c4c0255073 | ||
|
|
1fa9020599 | ||
|
|
dd7554374f | ||
|
|
65b5325ca6 | ||
|
|
b64a3e301a | ||
|
|
31562919bb | ||
|
|
9c75e25da7 | ||
|
|
7d91850be6 | ||
|
|
4af3b24b69 | ||
|
|
e4e66b143c | ||
|
|
dd93e2b0c4 | ||
|
|
d505b5ab9d | ||
|
|
0fb717a97f | ||
|
|
c634f98fca | ||
|
|
460479390a | ||
|
|
26013e239d | ||
|
|
46fe40ed47 | ||
|
|
0c27bcf73e | ||
|
|
d86b0e6e67 | ||
|
|
fff623acb1 | ||
|
|
f45c0206da | ||
|
|
61726c7e05 | ||
|
|
79552e0a37 | ||
|
|
5ec2087257 | ||
|
|
5214257cd4 | ||
|
|
365ca4d01f | ||
|
|
419a73b3de | ||
|
|
c093fbb8f6 | ||
|
|
31bb85bea3 | ||
|
|
803565456f | ||
|
|
520f5771d8 | ||
|
|
5fbd6f6606 | ||
|
|
bc9c7f0f1d | ||
|
|
08a2f0aa44 | ||
|
|
a0387faa67 | ||
|
|
1dd4674ccb | ||
|
|
60e26d1ddd | ||
|
|
ecdab76705 | ||
|
|
403fdf997c | ||
|
|
a9e83463e0 | ||
|
|
2bde4327c7 |
46
.github/workflows/maven.yml
vendored
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time
|
||||||
|
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-maven
|
||||||
|
|
||||||
|
# This workflow uses actions that are not certified by GitHub.
|
||||||
|
# They are provided by a third-party and are governed by
|
||||||
|
# separate terms of service, privacy policy, and support
|
||||||
|
# documentation.
|
||||||
|
|
||||||
|
name: Java CI with Maven
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ "master" ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ "master" ]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os: [ ubuntu-latest ]
|
||||||
|
java: [ 8, 11, 17, 21 ]
|
||||||
|
fail-fast: false
|
||||||
|
max-parallel: 16
|
||||||
|
name: Test JDK ${{ matrix.java }}, ${{ matrix.os }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
- name: Set up JDK
|
||||||
|
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
|
||||||
|
with:
|
||||||
|
distribution: 'temurin'
|
||||||
|
java-version: ${{ matrix.java }}
|
||||||
|
cache: 'maven'
|
||||||
|
- name: Build with Maven if test jdk8
|
||||||
|
if: ${{ matrix.java == '8' || matrix.java == '11'}}
|
||||||
|
run: ./mvnw -Pgen-javadoc clean package -B
|
||||||
|
- name: Build with Maven if test jdk17
|
||||||
|
if: ${{ matrix.java == '17' || matrix.java == '21' }}
|
||||||
|
run: ./mvnw -Penable-for-jdk17+,gen-code-cov clean package -B
|
||||||
3
.gitignore
vendored
@@ -7,6 +7,7 @@ test-output/
|
|||||||
.settings/
|
.settings/
|
||||||
tmp
|
tmp
|
||||||
temp
|
temp
|
||||||
|
logs/
|
||||||
*.log
|
*.log
|
||||||
antx.properties
|
antx.properties
|
||||||
otter.properties
|
otter.properties
|
||||||
@@ -18,6 +19,8 @@ jtester.properties
|
|||||||
*.rpm
|
*.rpm
|
||||||
client-adapter/example/
|
client-adapter/example/
|
||||||
*.dat
|
*.dat
|
||||||
|
.qwen/
|
||||||
|
.vscode/
|
||||||
conf/
|
conf/
|
||||||
canal-admin/canal-admin-ui/dist/
|
canal-admin/canal-admin-ui/dist/
|
||||||
canal-admin/canal-admin-ui/node/
|
canal-admin/canal-admin-ui/node/
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ cache:
|
|||||||
install: true
|
install: true
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- travis_wait 30 ./mvnw clean install -DskipTests=false -Dcheckstyle.skip=true -Dmaven.javadoc.skip=true
|
- travis_wait 30 ./mvnw -T 1C clean install -DskipTests=false -Dcheckstyle.skip=true -Dmaven.javadoc.skip=true
|
||||||
|
|
||||||
after_success:
|
after_success:
|
||||||
- bash <(curl -s https://codecov.io/bash)
|
- bash <(curl -s https://codecov.io/bash)
|
||||||
|
|||||||
45
README.md
@@ -4,12 +4,16 @@
|
|||||||

|

|
||||||
[](http://isitmaintained.com/project/alibaba/canal "average time to resolve an issue")
|
[](http://isitmaintained.com/project/alibaba/canal "average time to resolve an issue")
|
||||||
[](http://isitmaintained.com/project/alibaba/canal "percentage of issues still open")
|
[](http://isitmaintained.com/project/alibaba/canal "percentage of issues still open")
|
||||||
|
[](https://opensource.alibaba.com/contribution_leaderboard/details?projectValue=canal)
|
||||||
|
|
||||||
## 背景
|
|
||||||
|
|
||||||
早期,阿里巴巴 B2B 公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求 ,主要是基于trigger的方式获取增量变更。从 2010 年开始,公司开始逐步尝试数据库日志解析,获取增量变更进行同步,由此衍生出了增量订阅和消费业务,从此开启一段新纪元。
|
## 简介
|
||||||
|
|
||||||
当前的 canal 支持源端 MySQL 版本包括 5.1.x , 5.5.x , 5.6.x , 5.7.x , 8.0.x
|

|
||||||
|
|
||||||
|
**canal [kə'næl]**,译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费
|
||||||
|
|
||||||
|
早期阿里巴巴因为杭州和美国双机房部署,存在跨机房同步的业务需求,实现方式主要是基于业务 trigger 获取增量变更。从 2010 年开始,业务逐步尝试数据库日志解析获取增量变更进行同步,由此衍生出了大量的数据库增量订阅和消费业务。
|
||||||
|
|
||||||
基于日志增量订阅和消费的业务包括
|
基于日志增量订阅和消费的业务包括
|
||||||
- 数据库镜像
|
- 数据库镜像
|
||||||
@@ -18,12 +22,7 @@
|
|||||||
- 业务 cache 刷新
|
- 业务 cache 刷新
|
||||||
- 带业务逻辑的增量数据处理
|
- 带业务逻辑的增量数据处理
|
||||||
|
|
||||||
## 项目介绍
|
当前的 canal 支持源端 MySQL 版本包括 5.1.x , 5.5.x , 5.6.x , 5.7.x , 8.0.x
|
||||||
|
|
||||||
#### 名称:canal [kə'næl]
|
|
||||||
#### 译意: 水道/管道/沟渠
|
|
||||||
#### 产品定位: 基于数据库增量日志解析,提供增量数据订阅和消费
|
|
||||||
#### 关键词: MySQL binlog parser / real-time / queue&topic / index build
|
|
||||||
|
|
||||||
## 工作原理
|
## 工作原理
|
||||||
|
|
||||||
@@ -35,7 +34,6 @@
|
|||||||
- MySQL slave 重放 relay log 中事件,将数据变更反映它自己的数据
|
- MySQL slave 重放 relay log 中事件,将数据变更反映它自己的数据
|
||||||
|
|
||||||
#### canal 工作原理
|
#### canal 工作原理
|
||||||

|
|
||||||
|
|
||||||
- canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送dump 协议
|
- canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送dump 协议
|
||||||
- MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 canal )
|
- MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 canal )
|
||||||
@@ -43,7 +41,7 @@
|
|||||||
|
|
||||||
## 重要版本更新说明
|
## 重要版本更新说明
|
||||||
|
|
||||||
canal 1.1.x 版本([release_note](https://github.com/alibaba/canal/releases)),性能与功能层面有较大的突破,重要提升包括:
|
1. canal 1.1.x 版本([release_note](https://github.com/alibaba/canal/releases)),性能与功能层面有较大的突破,重要提升包括:
|
||||||
|
|
||||||
- 整体性能测试&优化,提升了150%. #726 参考: [Performance](https://github.com/alibaba/canal/wiki/Performance)
|
- 整体性能测试&优化,提升了150%. #726 参考: [Performance](https://github.com/alibaba/canal/wiki/Performance)
|
||||||
- 原生支持prometheus监控 #765 [Prometheus QuickStart](https://github.com/alibaba/canal/wiki/Prometheus-QuickStart)
|
- 原生支持prometheus监控 #765 [Prometheus QuickStart](https://github.com/alibaba/canal/wiki/Prometheus-QuickStart)
|
||||||
@@ -51,15 +49,22 @@ canal 1.1.x 版本([release_note](https://github.com/alibaba/canal/releases)
|
|||||||
- 原生支持aliyun rds的binlog订阅 (解决自动主备切换/oss binlog离线解析) 参考: [Aliyun RDS QuickStart](https://github.com/alibaba/canal/wiki/aliyun-RDS-QuickStart)
|
- 原生支持aliyun rds的binlog订阅 (解决自动主备切换/oss binlog离线解析) 参考: [Aliyun RDS QuickStart](https://github.com/alibaba/canal/wiki/aliyun-RDS-QuickStart)
|
||||||
- 原生支持docker镜像 #801 参考: [Docker QuickStart](https://github.com/alibaba/canal/wiki/Docker-QuickStart)
|
- 原生支持docker镜像 #801 参考: [Docker QuickStart](https://github.com/alibaba/canal/wiki/Docker-QuickStart)
|
||||||
|
|
||||||
|
2. canal 1.1.4版本,迎来最重要的WebUI能力,引入canal-admin工程,支持面向WebUI的canal动态管理能力,支持配置、任务、日志等在线白屏运维能力,具体文档:[Canal Admin Guide](https://github.com/alibaba/canal/wiki/Canal-Admin-Guide)
|
||||||
|
|
||||||
## 文档
|
## 文档
|
||||||
|
|
||||||
- [Home](https://github.com/alibaba/canal/wiki/Home)
|
- [Home](https://github.com/alibaba/canal/wiki/Home)
|
||||||
- [Introduction](https://github.com/alibaba/canal/wiki/Introduction)
|
- [Introduction](https://github.com/alibaba/canal/wiki/Introduction)
|
||||||
- [QuickStart](https://github.com/alibaba/canal/wiki/QuickStart)
|
- [QuickStart](https://github.com/alibaba/canal/wiki/QuickStart)
|
||||||
- [Docker QuickStart](https://github.com/alibaba/canal/wiki/Docker-QuickStart)
|
- [Docker QuickStart](https://github.com/alibaba/canal/wiki/Docker-QuickStart)
|
||||||
- [Canal Kafka/RocketMQ QuickStart](https://github.com/alibaba/canal/wiki/Canal-Kafka-RocketMQ-QuickStart")
|
- [Canal Kafka/RocketMQ QuickStart](https://github.com/alibaba/canal/wiki/Canal-Kafka-RocketMQ-QuickStart)
|
||||||
- [Aliyun RDS for MySQL QuickStart](https://github.com/alibaba/canal/wiki/aliyun-RDS-QuickStart)
|
- [Aliyun RDS for MySQL QuickStart](https://github.com/alibaba/canal/wiki/aliyun-RDS-QuickStart)
|
||||||
- [Prometheus QuickStart](https://github.com/alibaba/canal/wiki/Prometheus-QuickStart)
|
- [Prometheus QuickStart](https://github.com/alibaba/canal/wiki/Prometheus-QuickStart)
|
||||||
|
- Canal Admin
|
||||||
|
- [Canal Admin QuickStart](https://github.com/alibaba/canal/wiki/Canal-Admin-QuickStart)
|
||||||
|
- [Canal Admin Guide](https://github.com/alibaba/canal/wiki/Canal-Admin-Guide)
|
||||||
|
- [Canal Admin ServerGuide](https://github.com/alibaba/canal/wiki/Canal-Admin-ServerGuide)
|
||||||
|
- [Canal Admin Docker](https://github.com/alibaba/canal/wiki/Canal-Admin-Docker)
|
||||||
- [AdminGuide](https://github.com/alibaba/canal/wiki/AdminGuide)
|
- [AdminGuide](https://github.com/alibaba/canal/wiki/AdminGuide)
|
||||||
- [ClientExample](https://github.com/alibaba/canal/wiki/ClientExample)
|
- [ClientExample](https://github.com/alibaba/canal/wiki/ClientExample)
|
||||||
- [ClientAPI](https://github.com/alibaba/canal/wiki/ClientAPI)
|
- [ClientAPI](https://github.com/alibaba/canal/wiki/ClientAPI)
|
||||||
@@ -81,20 +86,26 @@ canal 特别设计了 client-server 模式,交互协议使用 protobuf 3.0 , c
|
|||||||
- canal go客户端: [https://github.com/CanalClient/canal-go](https://github.com/CanalClient/canal-go)
|
- canal go客户端: [https://github.com/CanalClient/canal-go](https://github.com/CanalClient/canal-go)
|
||||||
- canal php客户端: [https://github.com/xingwenge/canal-php](https://github.com/xingwenge/canal-php)
|
- canal php客户端: [https://github.com/xingwenge/canal-php](https://github.com/xingwenge/canal-php)
|
||||||
- canal Python客户端:[https://github.com/haozi3156666/canal-python](https://github.com/haozi3156666/canal-python)
|
- canal Python客户端:[https://github.com/haozi3156666/canal-python](https://github.com/haozi3156666/canal-python)
|
||||||
|
- canal Rust客户端:[https://github.com/laohanlinux/canal-rs](https://github.com/laohanlinux/canal-rs)
|
||||||
|
- canal Nodejs客户端:[https://github.com/marmot-z/canal-nodejs](https://github.com/marmot-z/canal-nodejs)
|
||||||
|
|
||||||
canal 作为 MySQL binlog 增量获取和解析工具,可将变更记录投递到 MQ 系统中,比如 Kafka/RocketMQ,可以借助于 MQ 的多语言能力
|
canal 作为 MySQL binlog 增量获取和解析工具,可将变更记录投递到 MQ 系统中,比如 Kafka/RocketMQ,可以借助于 MQ 的多语言能力
|
||||||
|
|
||||||
- 参考文档: [Canal Kafka/RocketMQ QuickStart](https://github.com/alibaba/canal/wiki/Canal-Kafka-RocketMQ-QuickStart)
|
- 参考文档: [Canal Kafka/RocketMQ QuickStart](https://github.com/alibaba/canal/wiki/Canal-Kafka-RocketMQ-QuickStart)
|
||||||
|
|
||||||
## 相关开源
|
## 基于canal开发的工具
|
||||||
|
|
||||||
|
- canal2sql(基于binlog生成SQL) : [https://github.com/zhuchao941/canal2sql]
|
||||||
|
|
||||||
|
## 相关开源&产品
|
||||||
|
|
||||||
- [canal 消费端开源项目: Otter](http://github.com/alibaba/otter)
|
- [canal 消费端开源项目: Otter](http://github.com/alibaba/otter)
|
||||||
- [阿里巴巴去 Oracle 数据迁移同步工具: yugong](http://github.com/alibaba/yugong)
|
- [阿里巴巴去 Oracle 数据迁移同步工具: yugong](http://github.com/alibaba/yugong)
|
||||||
|
- [阿里巴巴离线同步开源项目 DataX](https://github.com/alibaba/datax)
|
||||||
|
- [阿里巴巴数据库连接池开源项目 Druid](https://github.com/alibaba/druid)
|
||||||
|
- [阿里巴巴实时数据同步工具 DTS](https://www.aliyun.com/product/dts)
|
||||||
|
|
||||||
## 问题反馈
|
## 问题反馈
|
||||||
- 邮件: jianghang115@gmail.com
|
|
||||||
- 报告 issue: [github issues](https://github.com/alibaba/canal/issues)
|
- 报告 issue: [github issues](https://github.com/alibaba/canal/issues)
|
||||||
|
|
||||||
## 其他资料
|
本项目的Issues会被同步沉淀至[阿里云开发者社区](https://developer.aliyun.com/ask)
|
||||||
|
|
||||||
- [ ADC 阿里技术嘉年华分享 ppt ( google docs)](https://docs.google.com/presentation/d/1MkszUPYRDkfVPz9IqOT1LLT5d9tuwde_WC8GZvjaDRg/edit?usp=sharing)
|
|
||||||
|
|||||||
118
SECURITY.md
Normal file
@@ -0,0 +1,118 @@
|
|||||||
|
# 漏洞奖励计划
|
||||||
|
## 报告
|
||||||
|
如果您认为自己在本程序中发现了任何安全(技术)漏洞,欢迎您通过 https://security.alibaba.com 向我们提交漏洞报告。
|
||||||
|
如果您报告任何安全漏洞,请注意您可能包含以下信息(合格报告):
|
||||||
|
* git程序URL地址,运行的环境
|
||||||
|
* 包含必要屏幕截图的详细说明
|
||||||
|
* 重现漏洞的步骤以及修复漏洞的建议。
|
||||||
|
* 其他有用信息
|
||||||
|
|
||||||
|
## 处理
|
||||||
|
ASRC(Alibaba Security Response Center阿里安全响应中心)将尽快审核并回复您的提交内容,并在我们努力修复您提交的漏洞时随时通知您。如有必要,我们可能会与您联系以获取更多信息。
|
||||||
|
|
||||||
|
|
||||||
|
## 条款和条件
|
||||||
|
1. 仅接受技术漏洞并对其进行评级
|
||||||
|
2. 出于安全原因,上报者同意与ASRC合作完成他/她提交的漏洞,不向任何第三方透露任何漏洞信息
|
||||||
|
3. 如果不止一个人报告相同的安全漏洞,奖励将给予完成合格报告的第一个人
|
||||||
|
4. 为了保护程序的用户,请在修复之前不要直接提交git的issue,也不要在社区讨论任何漏洞信息
|
||||||
|
5. 所有奖励和声誉积分将提供给仅向ASRC提交其安全漏洞的上报者
|
||||||
|
6. 安全漏洞奖励的解释权利归ASRC所有
|
||||||
|
|
||||||
|
## 收集范围
|
||||||
|
我们的主要收集漏洞类别是:
|
||||||
|
* 服务器端请求伪造(SSRF)
|
||||||
|
* SQL注入
|
||||||
|
* 拒绝服务攻击
|
||||||
|
* 远程执行代码(RCE)
|
||||||
|
* XML外部实体攻击(XXE)
|
||||||
|
* 访问控制问题(不安全的直接对象参考问题等)
|
||||||
|
* 敏感目录遍历问题
|
||||||
|
* 本地文件读取(LFD)
|
||||||
|
* 敏感信息泄露(密钥,Cookie,Session等)
|
||||||
|
|
||||||
|
## 奖励
|
||||||
|
* 可直接导致严重问题的每个漏洞奖励7000元人民币
|
||||||
|
* 存在限制及需要一定特殊环境下才能利用的问题将给予700-5600元人民币不等的奖励,比如需要用户主动点击才会触发的问题或需要admin权限
|
||||||
|
* 只有在指定环境下才可以运行的利用将有可能被收纳但不给予奖励,或直接被忽略,比如只在fastjson+linux特定版本才会出现的问题
|
||||||
|
|
||||||
|
## 不在收集范围的报告
|
||||||
|
* 影响过时浏览器或平台用户的漏洞
|
||||||
|
* Self-XSS
|
||||||
|
* 会话固定
|
||||||
|
* 内容欺骗
|
||||||
|
* 缺少cookie标记
|
||||||
|
* 混合内容警告
|
||||||
|
* SSL / TLS问题
|
||||||
|
* Clickjacking
|
||||||
|
* 基于Flash的漏洞
|
||||||
|
* 反射文件下载攻击(RFD)
|
||||||
|
* 物理或社会工程攻击
|
||||||
|
* 未验证自动化工具或扫描仪的结果
|
||||||
|
* 登录/注销/未认证/低影响CSRF
|
||||||
|
* 需要MITM或物理访问用户设备的攻击
|
||||||
|
* 与网络协议或行业标准相关的问题
|
||||||
|
* 不能用于直接攻击的错误信息泄露
|
||||||
|
* 缺少与安全相关的HTTP标头等
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Vulnerability Reward Program
|
||||||
|
## Reporting
|
||||||
|
If you believe you have found any security (technical) vulnerability in the Program, you are welcomed to submit a vulnerability report to us at https://security.alibaba.com
|
||||||
|
In case of reporting any security vulnerability, please be noted that you may including following information (Qualified Reporting):
|
||||||
|
* The git program URL and running version
|
||||||
|
* A detailed description with necessary screenshots
|
||||||
|
* Steps to reappearance the vulnerability and your advice to fix it
|
||||||
|
* Other useful information
|
||||||
|
|
||||||
|
|
||||||
|
## Processing
|
||||||
|
ASRC (Alibaba Security Response Center) will review and respond as quickly as possible to your submission, and keep you informed as we work to fix the vulnerability you submitted. We may contact you for further information if necessary.
|
||||||
|
|
||||||
|
|
||||||
|
## Terms and Conditions
|
||||||
|
1. ONLY technical vulnerabilities will be accepted and rated.
|
||||||
|
2. With regarding to security reasons, reporters agree to cooperate with ASRC exclusively on the vulnerability he/she submitted and not disclose any information of vulnerability to any third-parties.
|
||||||
|
3. In the case that more than one person report the same security vulnerability, the reward will be given to the first person who accomplish a Qualified Reporting.
|
||||||
|
4. To protect users of the program, please do not directly submit issue on github or discuss anything with the community
|
||||||
|
5. All Rewards and Reputation Credits are given to the reporters who submit his/her security vulnerabilities ONLY to ASRC.
|
||||||
|
6. All rights for the security vulnerability rewards are reserved by ASRC.
|
||||||
|
|
||||||
|
## Scope of Collecting
|
||||||
|
The main categories of vulnerabilities that we are sincerely looking for are:
|
||||||
|
* Server-Side Request Forgery (SSRF)
|
||||||
|
* SQL Injection
|
||||||
|
* Denial of Service Attack
|
||||||
|
* Remote Code Execution (RCE)
|
||||||
|
* XML External Entity Attacks (XXE)
|
||||||
|
* Access Control Issues (Insecure Direct Object Reference issues, etc.)
|
||||||
|
* Directory Traversal Issues
|
||||||
|
* Local File Disclosure (LFD)
|
||||||
|
* Sensitive Information Leakage (Key, Cookie, Session etc.)
|
||||||
|
|
||||||
|
## Reward
|
||||||
|
* $1,000 for one valid report
|
||||||
|
* $100-$800 for Vuls which is limited. For example, Vuls that need user interactions or administrator authority
|
||||||
|
* Vuls which only work on the special version will be accepted but no reward, or directly rejected. For example, Vul runs only on a special linux version
|
||||||
|
|
||||||
|
## Ineligible Reports
|
||||||
|
* Vulnerabilities affecting users of outdated browsers or platforms
|
||||||
|
* "Self" XSS
|
||||||
|
* Session fixation
|
||||||
|
* Content Spoofing
|
||||||
|
* Missing cookie flags
|
||||||
|
* Mixed content warnings
|
||||||
|
* SSL/TLS best practices
|
||||||
|
* Clickjacking/UI redressing
|
||||||
|
* Flash-based vulnerabilities
|
||||||
|
* Reflected file download attacks (RFD)
|
||||||
|
* Physical or social engineering attacks
|
||||||
|
* Unverified Results of automated tools or scanners
|
||||||
|
* Login/logout/unauthenticated/low-impact CSRF
|
||||||
|
* Attacks requiring MITM or physical access to a user's device
|
||||||
|
* Issues related to networking protocols or industry standards
|
||||||
|
* Error information disclosure that cannot be used to make a direct attack
|
||||||
|
* Missing security-related HTTP headers which do not lead directly to a vulnerability
|
||||||
BIN
admin/admin-ui/node/node
Executable file
@@ -1,14 +1,14 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<parent>
|
<parent>
|
||||||
<artifactId>canal-admin</artifactId>
|
<artifactId>canal.admin</artifactId>
|
||||||
<groupId>com.alibaba.otter</groupId>
|
<groupId>com.alibaba.otter</groupId>
|
||||||
<version>1.1.4</version>
|
<version>1.1.9-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<artifactId>canal-admin-ui</artifactId>
|
<artifactId>canal.admin-ui</artifactId>
|
||||||
|
<name>canal admin-ui module for otter ${project.version}</name>
|
||||||
<properties>
|
<properties>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||||
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 96 KiB |
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 497 B After Width: | Height: | Size: 497 B |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 944 B After Width: | Height: | Size: 944 B |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 285 B After Width: | Height: | Size: 285 B |
|
Before Width: | Height: | Size: 821 B After Width: | Height: | Size: 821 B |
|
Before Width: | Height: | Size: 623 B After Width: | Height: | Size: 623 B |
|
Before Width: | Height: | Size: 597 B After Width: | Height: | Size: 597 B |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 440 B After Width: | Height: | Size: 440 B |
@@ -59,7 +59,7 @@ export default {
|
|||||||
canalInstanceDetail(this.$route.query.id).then(response => {
|
canalInstanceDetail(this.$route.query.id).then(response => {
|
||||||
const data = response.data
|
const data = response.data
|
||||||
this.form.id = data.id
|
this.form.id = data.id
|
||||||
this.form.name = data.name + '/instance.propertios'
|
this.form.name = data.name + '/instance.properties'
|
||||||
this.form.content = data.content
|
this.form.content = data.content
|
||||||
this.form.clusterServerId = data.clusterServerId
|
this.form.clusterServerId = data.clusterServerId
|
||||||
})
|
})
|
||||||
@@ -66,8 +66,8 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
const validatePassword = (rule, value, callback) => {
|
const validatePassword = (rule, value, callback) => {
|
||||||
if (value.length < 6) {
|
if (value.length < 5) {
|
||||||
callback(new Error('The password can not be less than 6 digits'))
|
callback(new Error('The password can not be less than 5 digits'))
|
||||||
} else {
|
} else {
|
||||||
callback()
|
callback()
|
||||||
}
|
}
|
||||||