将一个数据库表的数据同步至另一数据库表中是开发过程中必不可少的业务需求,大部人在遇到此类问题时就会选择复制表结构,表对表插入数据,当然这不乏是个很方便快捷的方式,但是如果后期需要更多的这样处理就很麻烦,所以在以上的情况下实现任务调度不为一个非常好的方法。下面本菜菜鸟就以PG数据库下两个不同的库之间数据同步为例,展开共享自己的小收获。
目录
此功能是在XxlJob中实现
时间紧,任务重!直接就开始了,谨记不同数据源之间同步最重要最主要的是配置
一、数据源的配置
XxlJob中,一般主要两部分,一是服务启动模块,二是具体实现模块,服务驱动实现,在实现模块中配置数据源。
这里有一点很重要,非常值得注意,一般配置数据库链接为url,但是但是但是多数据源用jdbc-url,否则配置的可能就会不生效。
datasource:
dynamic:
primary: pg1 #设置默认的数据源或者数据源组,默认值即为pg1
strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
datasource:
pg1:
jdbc-url: jdbc:postgresql://xx.xx.xx.xx:xxxx/pg1?currentSchema=pg1&useUnicode=true&characterEncoding=utf8
username: root
password: 123456
driver-class-name: org.postgresql.Driver
type: com.alibaba.druid.pool.DruidDataSource
pg2:
jdbc-url: jdbc:postgresql://xx.xx.xx.xx:xxxx/pg2?currentSchema=pg2&useUnicode=true&characterEncoding=utf8
username: root
password: 123456
driver-class-name: org.postgresql.Driver
type: com.alibaba.druid.pool.DruidDataSource
druid:
# 初始化大小,最小,最大
initial-size: 5
max-active: 30
min-idle: 5
# 获取数据库连接等待的超时时间
max-wait: 3000
max-open-prepared-statements: -1
# 配置多久进行一次检测,检测需要关闭的空闲连接 单位毫秒
time-between-eviction-runs-millis: 60000
# 配置连接在池中的最小生存时间
min-evictable-idle-time-millis: 300000
# 配置连接在池中的最大生存时间
max-evictable-idle-time-millis: 400000
# 系统启动时通过该sql语句验证数据库是否可用,如果不配置validationQuery,则下面三项无效
validation-query: SELECT 1
# 启用空闲连接检测,以便回收
test-while-idle: true
# 从连接池获取连接时,是否检测连接可用性,开启性能会有些许影响
test-on-borrow: false
# 释放连接到连接池时,是否检测连接可用性,开启性能会有些许影响
test-on-return: false
# 打开PSCache,并且指定每个连接上PSCache的大小
pool-prepared-statements: false
max-pool-prepared-statement-per-connection-size: 20
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
filters: stat,wall
use-global-data-source-stat: true
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
connect-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
然后进行配置文件处理,这目的主要用于扫描相应的mapper

文章介绍了在PG数据库环境下,如何配置多个数据源并在XxlJob中实现数据同步的任务调度。重点讨论了数据源配置的细节,包括配置文件中的jdbc-url设置,以及在Spring中配置多数据源的方法,如@MapperScan和@ConfigurationProperties的使用。此外,还展示了Service和Mapper层面的实现,包括数据的删除、查询和插入操作。
最低0.47元/天 解锁文章
1043

被折叠的 条评论
为什么被折叠?



