mirror of
https://github.com/alibaba/canal.git
synced 2026-11-04 00:30:15 +08:00
调整到alibabatech下
@@ -145,10 +145,10 @@
|
||||
</ul>
|
||||
<h2>增量订阅/消费设计</h2>
|
||||
<p><img width="427" src="http://dl.iteye.com/upload/attachment/0080/3297/9d7ed13e-6a86-386d-92f4-852238c475bf.jpg" alt="" height="524"></p>
|
||||
<p>具体的协议格式,可参见:<a href="https://github.com/otter-projects/canal/blob/master/protocol/src/main/java/com/alibaba/otter/canal/protocol/CanalProtocol.proto">CanalProtocol.proto</a></p>
|
||||
<p>具体的协议格式,可参见:<a href="https://github.com/alibabatech/canal/blob/master/protocol/src/main/java/com/alibaba/otter/canal/protocol/CanalProtocol.proto">CanalProtocol.proto</a></p>
|
||||
<p>get/ack/rollback协议介绍:</p>
|
||||
<ul>
|
||||
<li>Message getWithoutAck(int batchSize),允许指定batchSize,一次可以获取多条,每次返回的对象为Message,包含的内容为:<br>a. batch id 唯一标识<br>b. entries 具体的数据对象,对应的数据对象格式:<a href="https://github.com/otter-projects/canal/blob/master/protocol/src/main/java/com/alibaba/otter/canal/protocol/EntryProtocol.proto">EntryProtocol.proto</a>
|
||||
<li>Message getWithoutAck(int batchSize),允许指定batchSize,一次可以获取多条,每次返回的对象为Message,包含的内容为:<br>a. batch id 唯一标识<br>b. entries 具体的数据对象,对应的数据对象格式:<a href="https://github.com/alibabatech/canal/blob/master/protocol/src/main/java/com/alibaba/otter/canal/protocol/EntryProtocol.proto">EntryProtocol.proto</a>
|
||||
</li>
|
||||
<li>void rollback(long batchId),顾命思议,回滚上次的get请求,重新获取数据。基于get获取的batchId进行提交,避免误操作</li>
|
||||
<li>void ack(long batchId),顾命思议,确认已经消费成功,通知server删除数据。基于get获取的batchId进行提交,避免误操作</li>
|
||||
@@ -167,7 +167,7 @@
|
||||
<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>数据对象格式:<a href="https://github.com/alibabatech/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
|
||||
@@ -217,4 +217,4 @@ Column
|
||||
<li><span style="line-height: 21px;">canal client每次进行connect时,会首先向zookeeper询问当前是谁启动了canal instance,然后和其建立链接,一旦链接不可用,会重新尝试connect.</span></li>
|
||||
</ol>
|
||||
<p><span style="line-height: 21px;">Canal Client的方式和canal server方式类似,也是利用zokeeper的抢占</span><span style="line-height: 21px;">EPHEMERAL节点的方式进行控制. </span></p>
|
||||
<p> </p>
|
||||
<p> </p>
|
||||
|
||||
@@ -17,7 +17,7 @@ FLUSH PRIVILEGES;</pre>
|
||||
<pre name="code" class="java">wget http://canal4mysql.googlecode.com/files/canal.deployer-1.0.0.tar.gz</pre>
|
||||
<p>or </p>
|
||||
<p>自己编译 </p>
|
||||
<pre name="code" class="java">git clone git@github.com:otter-projects/canal.git
|
||||
<pre name="code" class="java">git clone git@github.com:alibabatech/canal.git
|
||||
cd canal;
|
||||
mvn clean install -Dmaven.test.skip -Denv=release</pre>
|
||||
<p> 编译完成后,会在根目录下产生target/canal.deployer-$version.tar.gz </p>
|
||||
@@ -90,4 +90,4 @@ canal.instance.filter.regex = .*\\..*
|
||||
<pre name="code" class="java">sh bin/stop.sh</pre>
|
||||
<p> </p>
|
||||
<p>it's over. </p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -145,10 +145,10 @@
|
||||
</ul>
|
||||
<h2>增量订阅/消费设计</h2>
|
||||
<p><img width="427" src="http://dl.iteye.com/upload/attachment/0080/3297/9d7ed13e-6a86-386d-92f4-852238c475bf.jpg" alt="" height="524"></p>
|
||||
<p>具体的协议格式,可参见:<a href="https://github.com/otter-projects/canal/blob/master/protocol/src/main/java/com/alibaba/otter/canal/protocol/CanalProtocol.proto">CanalProtocol.proto</a></p>
|
||||
<p>具体的协议格式,可参见:<a href="https://github.com/alibabatech/canal/blob/master/protocol/src/main/java/com/alibaba/otter/canal/protocol/CanalProtocol.proto">CanalProtocol.proto</a></p>
|
||||
<p>get/ack/rollback协议介绍:</p>
|
||||
<ul>
|
||||
<li>Message getWithoutAck(int batchSize),允许指定batchSize,一次可以获取多条,每次返回的对象为Message,包含的内容为:<br>a. batch id 唯一标识<br>b. entries 具体的数据对象,对应的数据对象格式:<a href="https://github.com/otter-projects/canal/blob/master/protocol/src/main/java/com/alibaba/otter/canal/protocol/EntryProtocol.proto">EntryProtocol.proto</a>
|
||||
<li>Message getWithoutAck(int batchSize),允许指定batchSize,一次可以获取多条,每次返回的对象为Message,包含的内容为:<br>a. batch id 唯一标识<br>b. entries 具体的数据对象,对应的数据对象格式:<a href="https://github.com/alibabatech/canal/blob/master/protocol/src/main/java/com/alibaba/otter/canal/protocol/EntryProtocol.proto">EntryProtocol.proto</a>
|
||||
</li>
|
||||
<li>void rollback(long batchId),顾命思议,回滚上次的get请求,重新获取数据。基于get获取的batchId进行提交,避免误操作</li>
|
||||
<li>void ack(long batchId),顾命思议,确认已经消费成功,通知server删除数据。基于get获取的batchId进行提交,避免误操作</li>
|
||||
@@ -167,7 +167,7 @@
|
||||
<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>数据对象格式:<a href="https://github.com/alibabatech/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
|
||||
@@ -217,4 +217,4 @@ Column
|
||||
<li><span style="line-height: 21px;">canal client每次进行connect时,会首先向zookeeper询问当前是谁启动了canal instance,然后和其建立链接,一旦链接不可用,会重新尝试connect.</span></li>
|
||||
</ol>
|
||||
<p><span style="line-height: 21px;">Canal Client的方式和canal server方式类似,也是利用zokeeper的抢占</span><span style="line-height: 21px;">EPHEMERAL节点的方式进行控制. </span></p>
|
||||
<p> </p>
|
||||
<p> </p>
|
||||
|
||||
Reference in New Issue
Block a user