소스 검색

修改canal.mq.partitionHash散列规则,
当指明pk级做分区(schema.table:pk1^pk2)时,由table.hashCode()^column.getValue().hashCode()改为database.hashCode()^column.getValue().hashCode(),从而支持同库下不同表hash至相同分区

wangsaner 6 년 전
부모
커밋
9826948ebb
1개의 변경된 파일1개의 추가작업 그리고 0개의 파일을 삭제
  1. 1 0
      server/src/main/java/com/alibaba/otter/canal/common/MQMessageUtils.java

+ 1 - 0
server/src/main/java/com/alibaba/otter/canal/common/MQMessageUtils.java

@@ -230,6 +230,7 @@ public class MQMessageUtils {
                                     }
                                 }
                             } else {
+                            	hashCode = database.hashCode();
                                 for (CanalEntry.Column column : rowData.getAfterColumnsList()) {
                                     if (checkPkNamesHasContain(hashMode.pkNames, column.getName())) {
                                         hashCode = hashCode ^ column.getValue().hashCode();