alibaba / canal

阿里巴巴 MySQL binlog 增量订阅&消费组件
Apache License 2.0
28.34k stars 7.58k forks source link

bug是不是有点多啊,各种解析错误和乱码,根本就无法使用 #4549

Closed syllvin closed 1 year ago

syllvin commented 1 year ago

java.lang.RuntimeException: parse event has an error , data:header { version: 1 logfileName: "mysql-bin.000002" logfileOffset: 11118 serverId: 1 serverenCode: "UTF-8" executeTime: 1672360171000 sourceType: MYSQL schemaName: "eladmin" tableName: "dy_course" eventLength: 1635 eventType: UPDATE props { key: "rowsCount" value: "1" } } entryType: ROWDATA storeValue: "\b\226\001\020\002P\000b\2354\n\'\b\000\020\373\377\377\377\377\377\377\377\377\001\032\002id \001(\0000\000B\00213R\nbigint(20)\n?\b\001\020\f\032\005title \000(\0000\000B\036\345\217\214\350\276\271\345\244\232\345\235\246\344\272\224\346\216\222\344\270\212\345\210\206\345\245\227\350\267\257R\fvarchar(255)\nA\b\002\020\f\032\asummary \000(\0000\000B\036\345\217\214\350\276\271\345\244\232\345\235\246\344\272\224\346\216\222\344\270\212\345\210\206\345\245\227\350\267\257R\fvarchar(255)\n\037\b\003\020\004\032\acate_id \000(\0000\000B\0011R\aint(11)\n-\b\004\020\373\377\377\377\377\377\377\377\377\001\032\tauthor_id \000(\0000\000B\0011R\nbigint(20)\n5\b\005\020\004\032\005style \000(\0000\000B\0011R\037enum(\'SINGLE\',\'SPECIAL\',\'NEWS\')\n]\b\006\020\004\032\nmedia_type \000(\0000\000B\0017RBenum(\'AUDIO\',\'PDF\',\'DOC\',\'ZIP\',\'PPT\',\'SERVICE\',\'VIDEO\',\'RICHTEXT\')\n$\b\a\020\004\032\ncost_price \000(\0000\000B\003100R\aint(11)\n#\b\b\020\004\032\nunit_price \000(\0000\000B\00299R\aint(11)\n\036\b\t\020\004\032\006coupon \000(\0000\000B\0010R\aint(11)\n%\b\n\020\004\032\fauthor_share \000(\0000\000B\00220R\aint(11)\n%\b\v\020\004\032\fbroker_share \000(\0000\000B\00259R\aint(11)\n\'\b\f\020\004\032\016self_pro_share \000(\0000\000B\00294R\aint(11)\ny\b\r\020\f\032\004logo \000(\0000\000BYhttps://chasingstar.cn/oceanknowledge/courseLogo/%E5%8F%8C%E8%BE%B9%E5%A4%9A%E5%9D%A6.pngR\fvarchar(255)\n\\b\016\020\f\032\acutline \000(\0000\000B9https://chasingstar.cn/oceanknowledge/poster/poster13.pngR\fvarchar(255)\nl\b\017\020\f\032\003url \000(\0000\000BMhttps://video.chasingstar.cn/sv/4a209bbf-17a8431bde1/4a209bbf-17a8431bde1.mp4R\fvarchar(255)\n\036\b\020\020\004\032\tdirection \000(\0000\001R\aint(11)\n%\b\021\020\f\032\vmnt_caption \000(\0000\001R\fvarchar(255)\n\"\b\022\020\f\032\bdown_url \000(\0000\001R\fvarchar(255)\n%\b\023\020\f\032\vpreview_url \000(\0000\001R\fvarchar(255)\n#\b\024\020\f\032\tshare_url \000(\0000\001R\fvarchar(255)\n\242\003\b\025\020\325\017\032\vdescription \000(\0000\000B\201\003\345\276\210\345\244\232\346\234\213\345\217\213\344\273\254\351\203\275\346\203\263\344\270\212\345\210\206\345\225\212\357\274\214\344\275\206\346\230\257\345\245\210\344\275\225\350\276\223\345\244\232\350\265\242\345\260\221\357\274\214\344\270\215\344\273\205\346\262\241\346\234\211\344\270\212\345\210\206\357\274\214\345\217\215\350\200\214\346\257\224\344\271\213\345\211\215\347\232\204\346\256\265\344\275\215\346\233\264\344\275\216\344\272\206\357\274\214\350\277\231\344\270\252\346\200\216\344\271\210\345\212\236\345\225\212\357\274\237\r\n\344\270\215\350\246\201\347\235\200\346\200\245\357\274\214\346\234\254\350\247\206\351\242\221\344\270\273\350\246\201\346\230\257\344\270\200\344\270\252\344\272\224\346\216\222\344\270\212\345\210\206\345\245\227\350\267\257\357\274\214\346\262\241\346\234\211\350\212\261\351\207\214\350\203\241\345\223\250\347\232\204\350\213\261\351\233\204\346\212\200\350\203\275\357\274\214\345\260\261\346\230\257\346\231\256\351\200\232\347\232\204\350\213\261\351\233\204\347\273\204\345\220\210\345\234\250\344\270\200\350\265\267\357\274\214\345\276\200\345\276\200\344\274\232\346\234\211\345\207\272\345\205\266\344\270\215\346\204\217\347\232\204\346\225\210\346\236\234\357\274\214\r\n\347\234\213\345\256\214\346\234\254\350\247\206\351\242\221\344\275\240\345\260\261\347\237\245\351\201\223\344\272\206\357\274\214\345\277\253\345\217\253\344\270\212\344\275\240\347\232\204\345\260\217\344\274\231\344\274\264\344\270\200\350\265\267\344\270\212\345\210\206\345\220\247R\004text\n,\b\026\020\373\377\377\377\377\377\377\377\377\001\032\bduration \000(\0000\000B\0010R\nbigint(20)\n-\b\027\020\373\377\377\377\377\377\377\377\377\001\032\tbuy_times \000(\0000\000B\0010R\nbigint(20)\n/\b\030\020\373\377\377\377\377\377\377\377\377\001\032\vstudy_times \000(\0000\000B\0010R\nbigint(20)\n.\b\031\020\373\377\377\377\377\377\377\377\377\001\032\npopularity \000(\0000\000B\0010R\nbigint(20)\n-\b\032\020\372\377\377\377\377\377\377\377\377\001\032\trecommend \000(\0000\000B\0010R\ntinyint(1)\n0\b\033\020\372\377\377\377\377\377\377\377\377\001\032\faudit_status \000(\0000\000B\0011R\ntinyint(1)\n%\b\034\020\f\032\vauth_letter \000(\0000\001R\fvarchar(255)\n!\b\035\020\f\032\acontact \000(\0000\001R\fvarchar(255)\n\"\b\036\020\f\032\bgroup_id \000(\0000\001R\fvarchar(255)\n6\b\037\020]\032\vcreate_time \000(\0000\000B\0232021-07-05 17:05:53R\bdatetime\n)\b \020\374\377\377\377\377\377\377\377\377\001\032\016default_author \000(\0000\001R\004text\n$\b!\020\f\032\vcreator_num \000(\0000\001R\vvarchar(32)\n!\b\"\020\f\032\006remark \000(\0000\001R\rvarchar(1024)\n6\b#\020]\032\vupdate_time \000(\0000\000B\0232021-11-13 14:22:12R\bdatetime\n$\b$\020\f\032\vupdater_num \000(\0000\001R\vvarchar(32)\n\"\b%\020\f\032\bvideo_id \000(\0000\001R\fvarchar(255)\n-\b&\020\372\377\377\377\377\377\377\377\377\001\032\thit_shelf \000(\0000\000B\0010R\ntinyint(1)\n\'\b\'\020\f\032\rrefuse_reason \000(\0000\001R\fvarchar(255)\n0\b(\020\372\377\377\377\377\377\377\377\377\001\032\017user_phone_need \000(\0000\001R\ntinyint(1)\n.\b)\020\373\377\377\377\377\377\377\377\377\001\032\nlectuer_id \000(\0000\000B\0011R\nbigint(20)\n/\b\020\372\377\377\377\377\377\377\377\377\001\032\vasync_to_ks \000(\0000\000B\0010R\ntinyint(1)\n-\b+\020\372\377\377\377\377\377\377\377\377\001\032\fcan_appraise \000(\0000\001R\ntinyint(1)\n0\b,\020\373\377\377\377\377\377\377\377\377\001\032\017course_draft_id \000(\0000\001R\nbigint(20)\n+\b-\020\373\377\377\377\377\377\377\377\377\001\032\nproduct_id \000(\0000\001R\nbigint(36)\n/\b.\020\003\032\024author_share_percent \000(\0000\001R\rdecimal(19,2)\n/\b/\020\003\032\024broker_share_percent \000(\0000\001R\rdecimal(19,2)\n1\b0\020\003\032\026self_pro_share_percent \000(\0000\001R\rdecimal(19,2)\n\035\b1\020\004\032\bsort_idx \000(\0000\001R\aint(11)\n\'\b2\020\f\032\rmp_qrcode_url \000(\0000\001R\fvarchar(255)\n-\b3\020\372\377\377\377\377\377\377\377\377\001\032\tgone_mask \000(\0000\000B\0010R\ntinyint(1)\n#\b4\020\f\032\tobject_id \000(\0000\001R\fvarchar(255)\n\b5\020\371\377\377\377\377\377\377\377\377\001\032\rpan_knowledge \000(\0000\001R\006bit(1)\n.\b6\020\371\377\377\377\377\377\377\377\377\001\032\021product_id_active \000(\0000\001R\006bit(1)\n\b7\020\372\377\377\377\377\377\377\377\377\001\032\006sms_sw \000(\0000\000B\0010R\ntinyint(1)\n\037\b8\020\004\032\nis_address \000(\0000\001R\aint(11)\n0\b9\020\373\377\377\377\377\377\377\377\377\001\032\017course_album_id \000(\0000\001R\nbigint(20)\n1\b:\020\373\377\377\377\377\377\377\377\377\001\032\020course_column_id \000(\0000\001R\nbigint(20)\n1\b;\020\372\377\377\377\377\377\377\377\377\001\032\ris_show_sales \000(\0000\000B\0011R\ntinyint(3)\n0\b<\020\372\377\377\377\377\377\377\377\377\001\032\fis_show_roll \000(\0000\000B\0011R\ntinyint(3)\n\034\b=\020\004\032\apayment \000(\0000\001R\aint(11)\022\'\b\000\020\373\377\377\377\377\377\377\377\377\001\032\002id \001(\0000\000B\00213R\nbigint(20)\022?\b\001\020\f\032\005title \000(\0000\000B\036\345\217\214\350\276\271\345\244\232\345\235\246\344\272\224\346\216\222\344\270\212\345\210\206\345\245\227\350\267\257R\fvarchar(255)\022B\b\002\020\f\032\asummary \000(\0010\000B\037\345\217\214\350\276\271\345\244\232\345\235\246\344\272\224\346\216\222\344\270\212\345\210\206\345\245\227\350\267\2571R\fvarchar(255)\022\037\b\003\020\004\032\acate_id \000(\0000\000B\0011R\aint(11)\022-\b\004\020\373\377\377\377\377\377\377\377\377\001\032\tauthor_id \000(\0000\000B\0011R\nbigint(20)\0225\b\005\020\004\032\005style \000(\0000\000B\0011R\037enum(\'SINGLE\',\'SPECIAL\',\'NEWS\')\022]\b\006\020\004\032\nmedia_type \000(\0000\000B\0017RBenum(\'AUDIO\',\'PDF\',\'DOC\',\'ZIP\',\'PPT\',\'SERVICE\',\'VIDEO\',\'RICHTEXT\')\022$\b\a\020\004\032\ncost_price \000(\0000\000B\003100R\aint(11)\022#\b\b\020\004\032\nunit_price \000(\0000\000B\00299R\aint(11)\022\036\b\t\020\004\032\006coupon \000(\0000\000B\0010R\aint(11)\022%\b\n\020\004\032\fauthor_share \000(\0000\000B\00220R\aint(11)\022%\b\v\020\004\032\fbroker_share \000(\0000\000B\00259R\aint(11)\022\'\b\f\020\004\032\016self_pro_share \000(\0000\000B\00294R\aint(11)\022y\b\r\020\f\032\004logo \000(\0000\000BYhttps://chasingstar.cn/oceanknowledge/courseLogo/%E5%8F%8C%E8%BE%B9%E5%A4%9A%E5%9D%A6.pngR\fvarchar(255)\022\\b\016\020\f\032\acutline \000(\0000\000B9https://chasingstar.cn/oceanknowledge/poster/poster13.pngR\fvarchar(255)\022l\b\017\020\f\032\003url \000(\0000\000BMhttps://video.chasingstar.cn/sv/4a209bbf-17a8431bde1/4a209bbf-17a8431bde1.mp4R\fvarchar(255)\022\036\b\020\020\004\032\tdirection \000(\0000\001R\aint(11)\022%\b\021\020\f\032\vmnt_caption \000(\0000\001R\fvarchar(255)\022\"\b\022\020\f\032\bdown_url \000(\0000\001R\fvarchar(255)\022%\b\023\020\f\032\vpreview_url \000(\0000\001R\fvarchar(255)\022#\b\024\020\f\032\tshare_url \000(\0000\001R\fvarchar(255)\022\242\003\b\025\020\325\017\032\vdescription \000(\0000\000B\201\003\345\276\210\345\244\232\346\234\213\345\217\213\344\273\254\351\203\275\346\203\263\344\270\212\345\210\206\345\225\212\357\274\214\344\275\206\346\230\257\345\245\210\344\275\225\350\276\223\345\244\232\350\265\242\345\260\221\357\274\214\344\270\215\344\273\205\346\262\241\346\234\211\344\270\212\345\210\206\357\274\214\345\217\215\350\200\214\346\257\224\344\271\213\345\211\215\347\232\204\346\256\265\344\275\215\346\233\264\344\275\216\344\272\206\357\274\214\350\277\231\344\270\252\346\200\216\344\271\210\345\212\236\345\225\212\357\274\237\r\n\344\270\215\350\246\201\347\235\200\346\200\245\357\274\214\346\234\254\350\247\206\351\242\221\344\270\273\350\246\201\346\230\257\344\270\200\344\270\252\344\272\224\346\216\222\344\270\212\345\210\206\345\245\227\350\267\257\357\274\214\346\262\241\346\234\211\350\212\261\351\207\214\350\203\241\345\223\250\347\232\204\350\213\261\351\233\204\346\212\200\350\203\275\357\274\214\345\260\261\346\230\257\346\231\256\351\200\232\347\232\204\350\213\261\351\233\204\347\273\204\345\220\210\345\234\250\344\270\200\350\265\267\357\274\214\345\276\200\345\276\200\344\274\232\346\234\211\345\207\272\345\205\266\344\270\215\346\204\217\347\232\204\346\225\210\346\236\234\357\274\214\r\n\347\234\213\345\256\214\346\234\254\350\247\206\351\242\221\344\275\240\345\260\261\347\237\245\351\201\223\344\272\206\357\274\214\345\277\253\345\217\253\344\270\212\344\275\240\347\232\204\345\260\217\344\274\231\344\274\264\344\270\200\350\265\267\344\270\212\345\210\206\345\220\247R\004text\022,\b\026\020\373\377\377\377\377\377\377\377\377\001\032\bduration \000(\0000\000B\0010R\nbigint(20)\022-\b\027\020\373\377\377\377\377\377\377\377\377\001\032\tbuy_times \000(\0000\000B\0010R\nbigint(20)\022/\b\030\020\373\377\377\377\377\377\377\377\377\001\032\vstudy_times \000(\0000\000B\0010R\nbigint(20)\022.\b\031\020\373\377\377\377\377\377\377\377\377\001\032\npopularity \000(\0000\000B\0010R\nbigint(20)\022-\b\032\020\372\377\377\377\377\377\377\377\377\001\032\trecommend \000(\0000\000B\0010R\ntinyint(1)\0220\b\033\020\372\377\377\377\377\377\377\377\377\001\032\faudit_status \000(\0000\000B\0011R\ntinyint(1)\022%\b\034\020\f\032\vauth_letter \000(\0000\001R\fvarchar(255)\022!\b\035\020\f\032\acontact \000(\0000\001R\fvarchar(255)\022\"\b\036\020\f\032\bgroup_id \000(\0000\001R\fvarchar(255)\0226\b\037\020]\032\vcreate_time \000(\0000\000B\0232021-07-05 17:05:53R\bdatetime\022)\b \020\374\377\377\377\377\377\377\377\377\001\032\016default_author \000(\0000\001R\004text\022$\b!\020\f\032\vcreator_num \000(\0000\001R\vvarchar(32)\022!\b\"\020\f\032\006remark \000(\0000\001R\rvarchar(1024)\0226\b#\020]\032\vupdate_time \000(\0010\000B\0232022-12-30 08:29:31R\bdatetime\022$\b$\020\f\032\vupdater_num \000(\0000\001R\vvarchar(32)\022\"\b%\020\f\032\bvideo_id \000(\0000\001R\fvarchar(255)\022-\b&\020\372\377\377\377\377\377\377\377\377\001\032\thit_shelf \000(\0000\000B\0010R\ntinyint(1)\022\'\b\'\020\f\032\rrefuse_reason \000(\0000\001R\fvarchar(255)\0220\b(\020\372\377\377\377\377\377\377\377\377\001\032\017user_phone_need \000(\0000\001R\ntinyint(1)\022.\b)\020\373\377\377\377\377\377\377\377\377\001\032\nlectuer_id \000(\0000\000B\0011R\nbigint(20)\022/\b\020\372\377\377\377\377\377\377\377\377\001\032\vasync_to_ks \000(\0000\000B\0010R\ntinyint(1)\022-\b+\020\372\377\377\377\377\377\377\377\377\001\032\fcan_appraise \000(\0000\001R\ntinyint(1)\0220\b,\020\373\377\377\377\377\377\377\377\377\001\032\017course_draft_id \000(\0000\001R\nbigint(20)\022+\b-\020\373\377\377\377\377\377\377\377\377\001\032\nproduct_id \000(\0000\001R\nbigint(36)\022/\b.\020\003\032\024author_share_percent \000(\0000\001R\rdecimal(19,2)\022/\b/\020\003\032\024broker_share_percent \000(\0000\001R\rdecimal(19,2)\0221\b0\020\003\032\026self_pro_share_percent \000(\0000\001R\rdecimal(19,2)\022\035\b1\020\004\032\bsort_idx \000(\0000\001R\aint(11)\022\'\b2\020\f\032\rmp_qrcode_url \000(\0000\001R\fvarchar(255)\022-\b3\020\372\377\377\377\377\377\377\377\377\001\032\tgone_mask \000(\0000\000B\0010R\ntinyint(1)\022#\b4\020\f\032\tobject_id \000(\0000\001R\fvarchar(255)\022\b5\020\371\377\377\377\377\377\377\377\377\001\032\rpan_knowledge \000(\0000\001R\006bit(1)\022.\b6\020\371\377\377\377\377\377\377\377\377\001\032\021product_id_active \000(\0000\001R\006bit(1)\022\b7\020\372\377\377\377\377\377\377\377\377\001\032\006sms_sw \000(\0000\000B\0010R\ntinyint(1)\022\037\b8\020\004\032\nis_address \000(\0000\001R\aint(11)\0220\b9\020\373\377\377\377\377\377\377\377\377\001\032\017course_album_id \000(\0000\001R\nbigint(20)\0221\b:\020\373\377\377\377\377\377\377\377\377\001\032\020course_column_id \000(\0000\001R\nbigint(20)\0221\b;\020\372\377\377\377\377\377\377\377\377\001\032\ris_show_sales \000(\0000\000B\0011R\ntinyint(3)\0220\b<\020\372\377\377\377\377\377\377\377\377\001\032\fis_show_roll \000(\0000\000B\0011R\ntinyint(3)\022\034\b=\020\004\032\apayment \000(\0000\001R\aint(11)"

at top.javatool.canal.client.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:52)
at top.javatool.canal.client.handler.impl.AsyncMessageHandlerImpl.lambda$handleMessage$0(AsyncMessageHandlerImpl.java:30)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)

Caused by: java.lang.NumberFormatException: For input string: "" at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.base/java.lang.Integer.parseInt(Integer.java:662) at java.base/java.lang.Integer.parseInt(Integer.java:770) at top.javatool.canal.client.util.StringConvertUtil.convertType(StringConvertUtil.java:23) at top.javatool.canal.client.util.FieldUtil.setFieldValue(FieldUtil.java:17) at top.javatool.canal.client.factory.EntryColumnModelFactory.newInstance(EntryColumnModelFactory.java:71) at top.javatool.canal.client.factory.EntryColumnModelFactory.newInstance(EntryColumnModelFactory.java:33) at top.javatool.canal.client.factory.EntryColumnModelFactory.newInstance(EntryColumnModelFactory.java:21) at top.javatool.canal.client.handler.impl.RowDataHandlerImpl.handlerRowData(RowDataHandlerImpl.java:41) at top.javatool.canal.client.handler.impl.RowDataHandlerImpl.handlerRowData(RowDataHandlerImpl.java:16) at top.javatool.canal.client.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:48) ... 4 common frames omitted

syllvin commented 1 year ago

不管字段存储的内容是中文,还是英文,一律乱码

opcache commented 1 year ago

你咋用的?我用的没那么多问题啊。。。

syllvin commented 1 year ago

你咋用的?我用的没那么多问题啊。。。

数字类型的字段,只要值为null,就报错。(即使是包装类型:Integer、Long、BigDecimal) 枚举类型的字段,也报错。

agapple commented 1 year ago

top.javatool.canal.client.handler.AbstractMessageHandler.handleMessage

自己封装的工具包?

agapple commented 1 year ago

明显工具包没有正确处理空值和编码