/porter

Porter是一款数据同步中间件,主要用于解决同构/异构数据库之间的表级别数据同步问题。

Primary LanguageJava

Porter | English

GitHub release License

概要

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

文档

架构设计

架构设计 数据流

快速预览

首页

联系我们

  • QQ群:835209101

首页