PostgreSQL逻辑复制到kafka-实践
kafka 安装
wget http://mirror.bit.edu.cn/apache/kafka/2.3.0/kafka_2.12-2.3.0.tgz
cp kafka_2.12-2.0.1.tgz kafka.tgz
sudo tar xzvf kafka.tgz --directory=/opt/java/kafka --strip 1
启动 kafka,需要先启动本地的 zookeeper,注意修改配置文件中zk的连接地址
/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
kafkacat 是一个C语言编写的 kafka 生产者、消费者程序。安装过程需要一些库可能需要手动下载。
postgres 逻辑解码, 程序 jsoncdc
jsoncdc 依赖于rust,可能需要先安装 rust 或者可以使用 wal2json替代
编译好之后本地目录下有 jsoncdc.so 或者 wal2json.so
postgres 安装解码插件:
vim $PGDATA/postgresql.conf
shared_preload_libraries = 'jsoncdc.so'
安装完成插件
postgres 插入数据
生产数据到本地 kafka
/opt/bin/pgsql/pg_10/bin/pg_recvlogical -d postgres -S jsoncdc --start -o pretty-print=1 -f - | ./kafkacat/kafkacat -b 127.0.0.1:9092 -t pg
Auto-selecting Producer mode (use -P or -C to override)
消费数据测试:
./kafkacat/kafkacat -b 127.0.0.1:9092 -t pg
kafka自消费实验:
启动zk,我这边有zk服务器,因此不需要启动:
bin/zookeeper-server-start.sh config/zookeeper.properties &
启动kafka:
bin/kafka-server-start.sh config/server.properties
—在里面修改zk连接信息
创建topic:
bin/kafka-topics.sh --create --zookeeper --replication-factor 1 --partitions 1 --topic test
创建一个叫做“test”的topic,它只有一个分区,一个副本。
> bin/kafka-topics.sh --create --zookeeper 10.9.5.20:4119,10.9.5.21:4119,10.9.5.22:4119,10.9.5.24:4119,10.9.5.35:4119,10.9.5.36:4119 --replication-factor 1 --partitions 1 --topic test
可以通过list命令查看创建的topic:
> bin/kafka-topics.sh --list --zookeeper localhost:2181
test
运行producer并在控制台中输一些消息,这些消息将被发送到服务端:
> bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
This is a messageThis is another message
ctrl+c可以退出发送。
消费消息:
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --consumer.config config/server.properties --topic test --from-beginning
接下来想写一个nodejs程序,将pg的变化动态回放到web中,显示出来。
PostgreSQL逻辑复制到kafka-实践的更多相关文章
- PostgreSQL逻辑复制使用记录
之前逻辑复制刚刚出来的时候就使用过,但是没有进行整理,这次一个项目需要逻辑复制的自动迁移,再次拾起逻辑复制. 在此之前有两个疑问: 1)同一个表,既有流复制,又有逻辑复制,这样数据会有两份吗? --不 ...
- PostgreSQL逻辑复制之pglogical篇
PostgreSQL逻辑复制之slony篇 一.pglogical介绍 pglogical 是 PostgreSQL 的拓展模块, 为 PostgreSQL 数据库提供了逻辑流复制发布和订阅的功能. ...
- Windows 环境搭建 PostgreSQL 逻辑复制高可用架构数据库服务
本文主要介绍 Windows 环境下搭建 PostgreSQL 的主从逻辑复制,关于 PostgreSQl 的相关运维文章,网络上大多都是 Linux 环境下的操作,鲜有在 Windows 环境下配置 ...
- PostgreSQL逻辑复制解密
在数字化时代的今天,我们都认同数据会创造价值.为了最大化数据的价值,我们不停的建立着数据迁移的管道,从同构到异构,从关系型到非关系型,从云下到云上,从数仓到数据湖,试图在各种场景挖掘数据的价值.而在这 ...
- PostgreSQL逻辑复制之slony篇
Slony是PostgreSQL领域中最广泛的复制解决方案之一.它不仅是最古老的复制实现之一,它也是一个拥有最广泛的外部工具支持的工具,比如pgAdmin3.多年来,Slony是在PostgreSQL ...
- PostgreSQL逻辑复制槽
Schema | Name | Result data type | Argument data types | Type ------------+------------------------- ...
- Windows 环境搭建 PostgreSQL 物理复制高可用架构数据库服务
PostgreSQL 高可用数据库的常见搭建方式主要有两种,逻辑复制和物理复制,上周已经写过了关于在Windows环境搭建PostgreSQL逻辑复制的教程,这周来记录一下 物理复制的搭建方法. 首先 ...
- postgresql从库搭建--逻辑复制
1 物理复制及逻辑复制对比 前文做了PostgreSQL物理复制的部署,其有如下主要优点 物理层面完全一致,是主要的复制方式,其类似于Oracle的DG 延迟低,事务执行过程中产生REDO recor ...
- 跨 PostgreSQL 大版本复制怎么做?| 逻辑复制
当需要升级PostgreSQL时,可以使用多种方法.为了避免应用程序停机,不是所有升级postgres的方法都适合,如果避免停机是必须的,那么可以考虑使用复制作为升级方法,并且根据方案,可以选择使用逻 ...
随机推荐
- css,scss解决样式:表格的重叠边框
初始效果: 解决方法: 给带有边框的元素设置如下样式margin:0 0 -borderwidth -borderwidth 这里的borderwidth即为边框的宽度,按照上图所示,则添加样式 ma ...
- [人物存档]【AI少女】【捏脸数据】现代风格
点击下载:6543d037acaf2edd03b4679f821001e9380193ce.png
- npoi 导入
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CusImport.aspx ...
- Centos 由字符界面 init 3 切换图形界面 init 5
Centos6 和 Centos7 由字符界面切换成 图形界面方法不同,下面分别介绍. 一.Centos6 切换方法 yum -y install xorg* yum -y groupinstall ...
- 2、DockPanel
DockPanel——停靠面板,内部控件或容器可以放置在上.下.左(默认).右.类似于Java AWT布局中的BorderLayout. 但与BorderLayout不同的是,每一个区域可以同时放置多 ...
- NOI 2019 AFO 记
Text 真的退役了... 非常抱歉 这篇文章暂时咕掉了
- RESTful规范与django编写restful接口
一.什么是RESTful规范 ①REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移” ②REST从资 ...
- 初始化spark
初始化SparkContext 一.初始化sparkimport org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaSpa ...
- layui button按钮点击导致页面重新刷新的解决方案
网友的解决方法:(我只想说,放屁!!!而且大家都在复制粘贴,浪费时间) 方法一:将button标签更换为input <input class="layui-btn test" ...
- Codeforces 343D Water Tree & 树链剖分教程
原题链接 题目大意 给定一棵根为1,初始时所有节点值为0的树,进行以下三个操作: 将以某点为根的子树节点值都变为1 将某个节点及其祖先的值都变为0 *询问某个节点的值 解题思路 这是一道裸的树链剖分题 ...