porter

by sxfad

sxfad / porter

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

452 Stars 144 Forks Last release: over 1 year ago (V4.0) 402 Commits 7 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

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

首页

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.