mirror of
https://github.com/alibaba/canal.git
synced 2026-11-04 00:30:15 +08:00
Updated canal介绍 (markdown)
33
canal介绍.md
33
canal介绍.md
@@ -167,6 +167,39 @@
|
||||
<li>进行ack时,需要按照mark的顺序进行数序ack,不能跳跃ack. ack会删除当前的mark标记,并将对应的mark位置更新为last ack cusor</li>
|
||||
<li>一旦出现异常情况,客户端可发起rollback情况,重新置位:删除所有的mark, 清理get请求位置,下次请求会从last ack cursor继续往后取</li>
|
||||
</ul>
|
||||
<h3>数据对象格式:<a href="https://github.com/otter-projects/canal/blob/master/protocol/src/main/java/com/alibaba/otter/canal/protocol/EntryProtocol.proto" style="font-size: 14px; line-height: 1.5; color: #bc2a4d; text-decoration: underline;">EntryProtocol.proto</a>
|
||||
</h3>
|
||||
<pre name="code" class="java">Entry
|
||||
Header
|
||||
logfileName [binlog文件名]
|
||||
logfileOffset [binlog position]
|
||||
executeTime [发生的变更]
|
||||
schemaName
|
||||
tableName
|
||||
eventType [insert/update/delete类型]
|
||||
entryType [事务头BEGIN/事务尾END/数据ROWDATA]
|
||||
storeValue [byte数据,可展开,对应的类型为RowChange]
|
||||
|
||||
RowChange
|
||||
isDdl [是否是ddl变更操作,比如create table/drop table]
|
||||
sql [具体的ddl sql]
|
||||
rowDatas [具体insert/update/delete的变更数据,可为多条,1个binlog event事件可对应多条变更,比如批处理]
|
||||
beforeColumns [Column类型的数组]
|
||||
afterColumns [Column类型的数组]
|
||||
|
||||
Column
|
||||
index
|
||||
sqlType [jdbc type]
|
||||
name [column name]
|
||||
isKey [是否为主键]
|
||||
updated [是否发生过变更]
|
||||
isNull [值是否为null]
|
||||
value [具体的内容,注意为文本]</pre>
|
||||
<p>说明:</p>
|
||||
<ul>
|
||||
<li>可以提供数据库变更前和变更后的字段内容,针对binlog中没有的name,isKey等信息进行补全</li>
|
||||
<li>可以提供ddl的变更语句</li>
|
||||
</ul>
|
||||
<h2>HA机制设计</h2>
|
||||
<p>canal的ha分为两部分,canal server和canal client分别有对应的ha实现</p>
|
||||
<ul>
|
||||
|
||||
Reference in New Issue
Block a user