参考地址:https://blog.csdn.net/weixin_33985507/article/details/92460419

参考地址:https://mp.weixin.qq.com/s/sccRf9u0MWnHMsnXjlcRGg

一、安装kafkacat

kafkacat 是一个C语言编写的 kafka 生产者、消费者程序。

安装kafkacat 之前,需要安装一下依赖

  1. sudo apt-get install librdkafka-dev libyajl-dev

二、重点是安装avro-c

安装avro-c的依赖

(1)、 其中安装libcur时会出错,因此先执行

  1. sudo apt-get install libjansson-dev

(2)、接着安装aptitude(若没有安装)

  1. apt install aptitude

(3)、安装curl

  1. tar jxvf curl-7.66..tar.bz2
    cd curl-7.66.0
    ./configure
    make
    make insall

安装完成之后将curl-7.66.0/include/curl 目录拷贝到/usr/include目录下面(需要包含curl 目录)

  1. sudo cp -r /home/yzh/curl-7.66./include/curl /usr/include

(4)、安装zlib

  1. sudo apt install zlib1g-dev

(5)、安装snappy

  1. sudo apt install libsnappy-dev

(6)、安装PkgConfig

  1. sudo apt install pkg-config

(7)、安装liblzma

  1. sudo apt install liblzma-dev

(8)、安装cmake

  1. tar zxvf cmake-3.15..tar.gz
  2. cd cmake-3.15.
  3. ./bootstrap
  4. make
  5. make install
  6.  
  7. cmake -version
  8. cmake version 3.15.
  9. CMake suite maintained and supported by Kitware (kitware.com/cmake).

(9)、安装avro-c

需要root用户

  1. tar -zvxf avro-c-1.9..tar.gz
  2. cd avro-c-1.9./
  3. mkdir build
  4. cd build
  5. cmake .. -DCMAKE_INSTALL_PREFIX=/opt/avro -DCMAKE_BUILD_TYPE=Release -DTHREADSAFE=true
  6. make
  7. make test
  8. make install

导入库文件

  1. # vi /etc/ld.so.conf
  2. /opt/avro/lib
  3.  
  4. # ldconfig

安装完成之后,需要将/opt/avro(安装时指定的路径 )中的相关文件拷贝到/usr相关路径下面

  1. cp -r /opt/avro/lib/* /usr/lib
  2. cp -r/opt/avro/include /usr/include

三、安装libserdes

  1. git clone https://github.com/confluentinc/libserdes
  2.  
  3. cd libserdes
  4. ./configure
  5. make
  6. sudo make install

四、安装kafkacat

  1. git clone https://github.com/edenhill/kafkacat
  2.  
  3. ./configure
  4. make
  5. sudo make install

安装之后,需要添加环境变量

  1. sudo vim /etc/profile
  2.  
  3. exoprt LD_LIBRARY_PATH=/usr/local/lib
  4. export PATH=$PATH:$LD_LIBRARY_PATH

五、安装wal2json

  1. git clone https://github.com/eulerto/wal2json
  2.  
  3. cd wal2json
  4.  
  5. make
  6. sudo make install

六、修改postgresql相关配置文件

posgresql.conf

  1. shared_preload_libraries = 'wal2json'
  2. wal_level = logical
  3. max_wal_senders =
  4. max_replication_slots =

创建具有Replication和Login授权的用户

  1. CREATE ROLE <name> WITH REPLICATION PASSWORD 'password' LOGIN;

修改pg_hba.conf,使该用户可以远程或本地访问数据库

  1. ############ REPLICATION ##############
  2. local replication <name> trust
  3. host replication <name> 127.0.0.1/ trust host replication <name> ::/ trust

七、测试

1、建立测试环境(创建的表必须要有主键)

  1. CREATE DATABASE test;
  2.  
  3. CREATE TABLE test_table (
  4. id char() NOT NULL,
  5. code char(),
  6. PRIMARY KEY (id)
  7. );

2、创建slot

  1. pg_recvlogical -h localhost -p -U postgres -d testdb --slot test_slot --create-slot -P wal2json

3、启动zookeeper、kafka(略)

5、启动slot

  1. pg_recvlogical -h localhost -p -U postgres -W -d testdb -S test_slot(对应创建的slot --start -f - | kafkacat -b 127.0.0.1: -t testdb_topic

6、消费testdb_topic

  1. bin/kafka-console-consumer.sh --topic testdb_topic --bootstrap-server 127.0.0.1: --from-beginning

将postgresql中的数据实时同步到kafka中的更多相关文章

  1. Mysql数据实时同步

    企业运维的数据库最常见的是 mysql;但是 mysql 有个缺陷:当数据量达到千万条的时候,mysql 的相关操作会变的非常迟缓; 如果这个时候有需求需要实时展示数据;对于 mysql 来说是一种灾 ...

  2. SQLServer数据实时同步PostgreSQL

    SQLServer数据实时同步至PostgreSQL 前言: 为迎合工作需求有时候传送的数据保存在SQLServer中但由于工作需要需要保存到PostgreSQL中进行处理,本文主要通过在SQLSer ...

  3. MySQL 到 ES 数据实时同步技术架构

    MySQL 到 ES 数据实时同步技术架构 我们已经讨论了数据去规范化的几种实现方式.MySQL 到 ES 数据同步本质上是数据去规范化多种实现方式中的一种,即通过"数据迁移同步" ...

  4. Linux下Rsync+sersync实现数据实时同步

    inotify 的同步备份机制有着缺点,于是看了sersync同步,弥补了rsync的缺点.以下转自:http://www.osyunwei.com/archives/7447.html 前言: 一. ...

  5. sersync实现数据实时同步

    1.1 第一个里程碑:安装sersync软件 1.1.1 将软件上传到服务器当中并解压 1.上传软件到服务器上 rz -E 为了便于管理上传位置统一设置为 /server/tools 中 2.解压软件 ...

  6. CentOS 6.5 rsync+inotify实现数据实时同步备份

    CentOS 6.5 rsync+inotify实现数据实时同步备份 rsync    remote sync 远程同步,同步是把数据从缓冲区同步到磁盘上去的.数据在内存缓存区完成之后还没有写入到磁盘 ...

  7. Rsync+sersync实现数据实时同步

    前言: 一.为什么要用Rsync+sersync架构? 1.sersync是基于Inotify开发的,类似于Inotify-tools的工具 2.sersync可以记录下被监听目录中发生变化的(包括增 ...

  8. Linux下Rsync+Inotify-tools实现数据实时同步

    Linux下Rsync+Inotify-tools实现数据实时同步 注意:下面的三个案例都是rsync 每次都是全量的同步(这就坑爹了),而且 file列表是循环形式触发rsync ,等于有10个文件 ...

  9. CentOS7下Rsync+sersync实现数据实时同步

    近期公司要上线新项目,后台框架选型我选择当前较为流行的laravel,运行环境使用lnmp. 之前我这边项目tp32+apache,开发工具使用phpstorm. 新建/编辑文件通过phpstorm配 ...

随机推荐

  1. VMware 15 搭建win 10 实操步骤+共享文件+激活操作

    写于:2018.12.22 一.简介: VMware 15 里搭建win 10是件很坑的事.我尝试了3种方法,最后才搭建成功.为了不让网友们不在走我走过的坑,特写了本文.   坑一:用老毛桃.大白菜搭 ...

  2. Linux命令行下常用svn命令

    1.Linux命令行下将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/do ...

  3. shouyexinlianjie

    http://7xj7xs.com1.z0.glb.clouddn.com/trail_1.mp4

  4. 算法所产生的性能改进已经超过了硬件所带来的性能提升 The future is algorithms, not code

    w 大数据的发展,伴随的将是软件工程师的渐退,算法工程师的崛起  http://mp.weixin.qq.com/s/XTz2HnzwlgTD3g5zU2u5Tg

  5. 十一、python函数学习

    1.    定义函数 def   函数名(形参): 函数体 return  xxx--------其下面的内容不再执行 ---------------------------------------- ...

  6. leetcode 52 N皇后问题 II

    51的简化版,省去根据排列话棋盘的工作,直接计数,代码: class Solution { public: int totalNQueens(int n) { ; vector<); dfs(n ...

  7. python 网络编程 代码版

    写博客最怕写什么? 系统原理,框架内核... #!/usr/bin/env python # -*- coding:utf-8 -*- import socket sk = socket.socket ...

  8. 009-Spring Boot 事件监听、监听器配置与方式、spring、Spring boot内置事件

    一.概念 1.事件监听的流程 步骤一.自定义事件,一般是继承ApplicationEvent抽象类 步骤二.定义事件监听器,一般是实现ApplicationListener接口 步骤三.启动时,需要将 ...

  9. Java中使用MATLAB作图 .

    最近做一个项目,需要很多进行很多信号处理——小魏就是学软件的,对信号处理简直是个小白,最简单的实现就是傻瓜似的调用MATLAB的各种工具箱,达到目的就行. 同时,MATLAB是种解释性语言,执行效率比 ...

  10. IntelliJ IDEA的常用设置

    1.设置IDEA主题样式 ①设置方法: ②效果:设置为Darcula之后整体的风格就是暗黑主题,如上图. 2.设置编辑区主题 ①设置方法: 注:由于IDEA自带的编辑区主题比较少,想要更多的编辑区主题 ...