|
@@ -234,10 +234,11 @@ public class MQMessageUtils {
|
|
|
*
|
|
|
* @param partitionsNum 分区数
|
|
|
* @param pkHashConfigs 分区库表主键正则表达式
|
|
|
+ * @param databaseHash 是否取消根据database进行hash
|
|
|
* @return 分区message数组
|
|
|
*/
|
|
|
@SuppressWarnings("unchecked")
|
|
|
- public static Message[] messagePartition(EntryRowData[] datas, long id, Integer partitionsNum, String pkHashConfigs) {
|
|
|
+ public static Message[] messagePartition(EntryRowData[] datas, long id, Integer partitionsNum, String pkHashConfigs,boolean databaseHash) {
|
|
|
if (partitionsNum == null) {
|
|
|
partitionsNum = 1;
|
|
|
}
|
|
@@ -279,7 +280,10 @@ public class MQMessageUtils {
|
|
|
RowChange.Builder rowChangeBuilder = RowChange.newBuilder(rowChange);
|
|
|
|
|
|
for (CanalEntry.RowData rowData : rowChange.getRowDatasList()) {
|
|
|
- int hashCode = database.hashCode();
|
|
|
+ int hashCode = 0;
|
|
|
+ if(databaseHash){
|
|
|
+ hashCode = database.hashCode();
|
|
|
+ }
|
|
|
CanalEntry.EventType eventType = rowChange.getEventType();
|
|
|
List<CanalEntry.Column> columns = null;
|
|
|
if (eventType == CanalEntry.EventType.DELETE) {
|
|
@@ -444,9 +448,10 @@ public class MQMessageUtils {
|
|
|
* @param flatMessage flatMessage
|
|
|
* @param partitionsNum 分区数量
|
|
|
* @param pkHashConfigs hash映射
|
|
|
+ * @param databaseHash 是否取消根据database进行hash
|
|
|
* @return 拆分后的flatMessage数组
|
|
|
*/
|
|
|
- public static FlatMessage[] messagePartition(FlatMessage flatMessage, Integer partitionsNum, String pkHashConfigs) {
|
|
|
+ public static FlatMessage[] messagePartition(FlatMessage flatMessage, Integer partitionsNum, String pkHashConfigs,boolean databaseHash) {
|
|
|
if (partitionsNum == null) {
|
|
|
partitionsNum = 1;
|
|
|
}
|
|
@@ -476,7 +481,10 @@ public class MQMessageUtils {
|
|
|
|
|
|
int idx = 0;
|
|
|
for (Map<String, String> row : flatMessage.getData()) {
|
|
|
- int hashCode = database.hashCode();
|
|
|
+ int hashCode = 0;
|
|
|
+ if(databaseHash){
|
|
|
+ hashCode = database.hashCode();
|
|
|
+ }
|
|
|
if (pkNames != null) {
|
|
|
for (String pkName : pkNames) {
|
|
|
String value = row.get(pkName);
|