首页 新闻 会员 周边 捐助

阿里 canal配置问题 配置的同步线程数threads 跟提交数量commitBatch 这两个起什么作用

0
悬赏园豆:20 [待解决问题]

我的canal 同步数据库总是同步一会就同步不上了 新增频率很快 这里跟 线程数配置有关系吗

还有批量提交数配置

threads线程数

canalAdapters:
  - instance: example # canal instance Name or mq topic name
    groups:
    - groupId: g1
      outerAdapters:
      - name: rdb                                               # 指定为rdb类型同步
        key: oracle1                                            # 指定adapter的唯一key, 与表映射配置中outerAdapterKey对应
        properties:
          jdbc.driverClassName: oracle.jdbc.OracleDriver        # jdbc驱动名, 部分jdbc的jar包需要自行放致lib目录下
          jdbc.url: jdbc:oracle:thin:@localhost:49161:XE        # jdbc url
          jdbc.username: mytest                                 # jdbc username
          jdbc.password: m121212                                # jdbc password
          threads: 5                                            # 并行执行的线程数, 默认为1

commitBatch 批量提交大小

dbMapping:
  database: 
  table: 
  targetTable: 
  targetPk:
    customer_id: 
  mapAll: true
  commitBatch: 500 # 批量提交的大小

我同步数据库同步一会 同步就跟不上了 是因为更新太频繁 需要更改这两个配置吗

问题补充:

线程数默认是1 我没设置 需要设置吗

批量提交数 默认3000 是更小一些提交的更快吗

溢性循环的主页 溢性循环 | 初学一级 | 园豆:131
提问于:2022-05-21 14:51
< >
分享
所有回答(1)
0

threads参数表示并行执行同步任务的线程数,增加线程数可以提高同步效率。一般情况下,增加线程数可以提高同步效率,但线程数也不能太多,否则会增加服务器的负担,甚至会导致同步任务阻塞或失败。对于高并发的场景,可以适当增加线程数,但需要根据具体情况进行调整。在调整线程数时,可以通过观察同步速度和服务器负载情况来确定最佳值。

commitBatch参数表示每次批量提交的数据条数,增加该值可以减少同步任务的提交次数,从而提高同步效率。一般情况下,增加批量提交数可以提高同步效率,但如果设置得过大,会导致内存占用过高,甚至可能出现OOM异常。在调整批量提交数时,可以适当增加该值,但需要根据服务器的内存情况和同步任务的数据量来确定最佳值。

如果您的数据库更新频率很快,可能需要增加threads参数和commitBatch参数的值,以提高同步效率。但是,增加这两个参数的值也会增加服务器的负担和内存消耗,需要根据具体情况进行调整。同时,如果同步任务一段时间后就同步不上了,可能是由于网络或数据库连接问题,也需要排查相关问题。

最后回答您的问题:

如果您没有设置threads参数,那么默认值是1,即只使用一个线程来执行同步任务。如果您的服务器性能较好,可以适当增加线程数,以提高同步效率。
对于commitBatch参数,具体的最佳值需要根据服务器的内存和同步任务的数据量来确定。一般来说,增大批量提交数可以提高同步效率,但不要设置得过大,以免出现内存问题。

Technologyforgood | 园豆:7688 (大侠五级) | 2023-04-10 21:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册