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

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

一、安装kafkacat

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

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

sudo apt-get install librdkafka-dev libyajl-dev

二、重点是安装avro-c

安装avro-c的依赖

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

sudo apt-get install libjansson-dev

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

apt install aptitude

(3)、安装curl

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 目录)

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

(4)、安装zlib

sudo apt install zlib1g-dev

(5)、安装snappy

sudo apt install libsnappy-dev

(6)、安装PkgConfig

sudo apt install pkg-config

(7)、安装liblzma

sudo apt install liblzma-dev

(8)、安装cmake

tar zxvf cmake-3.15..tar.gz
cd cmake-3.15.
./bootstrap
make
make install cmake -version
cmake version 3.15.
CMake suite maintained and supported by Kitware (kitware.com/cmake).

(9)、安装avro-c

需要root用户

tar -zvxf avro-c-1.9..tar.gz
cd avro-c-1.9./
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/avro -DCMAKE_BUILD_TYPE=Release -DTHREADSAFE=true
make
make test
make install

导入库文件

# vi /etc/ld.so.conf
/opt/avro/lib # ldconfig

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

cp -r /opt/avro/lib/* /usr/lib
cp -r/opt/avro/include /usr/include

三、安装libserdes

git clone https://github.com/confluentinc/libserdes

cd libserdes
./configure
make
sudo make install

四、安装kafkacat

git clone https://github.com/edenhill/kafkacat

./configure
make
sudo make install

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

sudo vim /etc/profile

exoprt LD_LIBRARY_PATH=/usr/local/lib
export PATH=$PATH:$LD_LIBRARY_PATH

五、安装wal2json

git clone https://github.com/eulerto/wal2json

 cd wal2json

make
sudo make install

六、修改postgresql相关配置文件

posgresql.conf

shared_preload_libraries = 'wal2json'
wal_level = logical
max_wal_senders =
max_replication_slots =

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

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

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

############ REPLICATION ##############
local replication <name> trust
host replication <name> 127.0.0.1/ trust host replication <name> ::/ trust

七、测试

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

CREATE DATABASE test;

CREATE TABLE test_table (
id char() NOT NULL,
code char(),
PRIMARY KEY (id)
);

2、创建slot

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

3、启动zookeeper、kafka(略)

5、启动slot

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

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

最新文章

  1. 【那些年关于java多态应用】
  2. ORACLE数据库汉字占几个字节问题
  3. javascript - 封装原生js实现ajax
  4. Java线程池入门
  5. Java中正则表达式的使用
  6. git 冲突解决(转载)
  7. 在Mac中安装.Net Core的开发环境
  8. react-native 布局基础
  9. HTML-滚动字幕的源代码(可作滚动公告)
  10. C++ - 模板类模板成员函数(member function template)隐式处理(implicit)变化
  11. linux下常用语言的语法检查插件整理
  12. 03 CheckBox 复选框
  13. WMI Explorer操作 和 powershell命令
  14. Django——发送邮件
  15. python生成linux命令行工具
  16. 从高德采集最新的省市区三级坐标和行政区域边界,用js在浏览器中运行
  17. 浅谈URI和URL
  18. scrapy--分布式爬虫
  19. 新书预告 ArcGIS跨平台开发系列第一本
  20. shell知识积累

热门文章

  1. UITabbarController &amp; UITabbar 学习
  2. es之IK分词器
  3. Linux内核调试方法总结之序言
  4. 安装fedora23后的一些杂项设置
  5. LongAccumulator 源码分析
  6. REACT--》fetch---基本使用
  7. [Git] 008 status 与 commit 命令的补充
  8. [Python3 填坑] 001 格式化符号 &amp; 格式化操作符的辅助指令
  9. PHP foreach &amp;$ 引发的bug
  10. Appium+Python之测试数据与脚本分离