Porter 简介

优质
小牛编辑
126浏览
2023-12-01

Porter 始于2017年,提供数据同步功能,但并不仅仅局限于数据同步,在随行付内部广泛使用。主要提供一下功能:

  • 数据库准实时同步
  • 数据库迁移
  • 数据库治理
  • 自定义源端、目标端数据同步
  • 自定义数据抽取逻辑

核心功能

  • 原生支持Oracle|Mysql到Jdbc关系型数据库最终一致同步
  • 插件友好化,支持自定义源端消费插件、目标端载入插件、告警插件等插件二次开发。
  • 支持自定义源端、目标端表、字段映射
  • 支持节点基于配置文件的同步任务配置。
  • 支持管理后台同步任务推送,节点、任务管理。提供任务运行指标监控,节点运行日志、任务异常告警。
  • 支持节点资源限流、分配。
  • 基于Zookeeper集群插件的分布式架构。支持自定义集群插件。

快速开始

从源码编译

git clone https://github.com/sxfad/porter.git
cd porter
git checkout 版本
gradle build
从build/distributions目录查找安装包

配置

#节点编号,在集群中唯一
porter.id=1

#开启自动gc控制(4.0新增)
porter.gc=true

#zk集群配置
porter.cluster.strategy=ZOOKEEPER
porter.cluster.client.url=127.0.0.1:2181,127.0.0.2:2181,127.0.0.3:2181
porter.cluster.client.sessionTimeout=100000

#统计数据收集,与manager-cluster搭配使用,不配置kafka时默认上传到zookeeper
porter.statistic.upload=true
#使用kafka统计数据
#porter.cluster.statistic.sourceType=KAFKA_PRODUCE
#porter.cluster.statistic.servers=127.0.0.1:9200
#porter.cluster.statistic.topic=你的kafka主题


#单机模式
porter.cluster.strategy=STANDALONE
porter.cluster.client.home=./.porter

运行

tar zxvf build/distributions/porter-boot-版本.tar
porter-boot-版本/bin/porter-boot

调试

porter-boot-版本/bin/porter-boot  debug 端口号

运行环境

porter-boot-版本/bin/porter-boot --spring.profiles.active=运行环境

关闭

porter-boot-版本/bin/shutdown.sh

强制启动

当 porter-boot 因 jvm crash、kill -9 强杀进程等原因造成节点、任务没有正常退出,再次启动 porter-boot 不成功、任务无法分配时使用。

通过porter-boot的 http 接口 http://ip:端口/inspect/node/info 查看参数 forceAssign 判断是否处于强制启动状态

porter-boot-版本 /bin/porter-boot --force