Debe开云体育官方注册网址zium项目致力于提供连接器的简单部署,因此用户可以尝试并运行他们选择的连接器,主要是通过获得正确的连接器存档并将其解压缩到Kafka Connect的插件路径中。

对于所有连接器都是如此,但对于开云体育官方注册网址Debezium PostgreSQL连接器.这个连接器是特定的,因为它需要逻辑解码插件安装在PostgreSQL源数据库内部。开云体育电动老虎机目前,支持的逻辑插件有两种:

  • postgres-decoderbufs,它使用协议缓冲区作为一种非常紧凑的传输格式,由Debezium社区维护开云体育官方注册网址

  • 基于json,它基于JSON,由自己的上游社区维护

这些插件可以通过两种方式使用和部署;最简单的方法就是用我们预先做好的Postgres容器图像,其中包含两个插件,并且已经根据需要进行了配置。如果您正在数据中心中使用容器,并且/或从头开始启动一个新的数据库,那么这可能是一个很好的选择。开云体育电动老虎机

另一种方法是从源代码构建。即使这通常是一项简单的任务,但它仍然为简单的开始带来了障碍,并且需要对Linux操作系统有相当多的了解。

为了弥合这两个极端之间的差距,我们创建并发布了一个RPM包,适用于Fedora 30及更高版本。通过安装这个包,您将部署必要的二进制文件,剩下的唯一任务是配置PostgreSQL以启用该插件。RPM基于最新稳定的Debezium版本,开云体育官方注册网址0.9.5.Final此时此刻。

例子

让我们来看看这个包是如何工作的。我们将使用流浪的作为一种使用Fedora启动预先配置的虚拟机的简单方法。当然,这不是一个要求,同样的步骤适用于任何其他运行Fedora的方式。

使用Fedora 30创建并启动虚拟机:

$ vagrantinit fedora/30-cloud-base在这个目录下有一个Vagrantfile。现在,您已经准备好“漫游”您的第一个虚拟环境了!请阅读Vagrantfile中的评论以及' vagrantup.com '上的文档,以获取更多关于使用Vagrant的信息。使用“virtualbox”提供程序... ...打开机器“默认”==>默认:机器已启动,准备好了!

登录虚拟机:

$ vagrant SSH

安装PostgreSQL服务器和Protocol Buffers逻辑解码插件:

$ sudo DNF -y install postgresql postgresql -decoderbufs…安装:postgres - decoderbufs 0.9.5 fc30——1.。x86_64 postgresql - 11.3 - 1. - fc30。x86_64 postgis fc30——2.5.1 - 1.。x86_64犰狳fc30——9.400.4 - 1.。x86_64巴拉斯fc30——3.8.0 - 12.。x86_64开罗fc30——1.16.0 - 5.。x86_64杯- libs 1:2.2.11 fc30——2.。x86_64 fontconfig fc30——2.13.1 - 8.。x86_64 lapack fc30——3.8.0 - 12.。x86_64 libgfortran fc30——9.1.1 - 1.。x86_64 libpq fc30——11.3 - 2.。x86_64 libquadmath fc30——9.1.1 - 1.。x86_64 mariadb -连接器- c - 3.0.10 fc30——1.。x86_64 mariadb -连接器- c -配置- 3.0.10 - 1. fc30。noarch nss fc30——3.44.0 - 2.。x86_64 nss - softokn 3.44.0 fc30——2.。x86_64 nss-softokn-freebl-3.44.0-2.fc30.x86_64 nss-sysinit-3.44.0-2.fc30.x86_64 nss-util-3.44.0-2.fc30.x86_64 poppler-0.73.0-9.fc30.x86_64 postgresql-server-11.3-1.fc30.x86_64 proj-5.2.0-2.fc30.x86_64 proj-datumgrid-1.8-2.fc30.noarch uriparser-0.9.3-1.fc30.x86_64 SuperLU-5.2.1-6.fc30.x86_64 arpack-3.5.0-6.fc28.x86_64 atk-2.32.0-1.fc30.x86_64 avahi-libs-0.7-18.fc30.x86_64 cfitsio-3.450-3.fc30.x86_64 dejavu-fonts-common-2.37-1.fc30.noarch dejavu-sans-fonts-2.37-1.fc30.noarch fontpackages-filesystem-1.44-24.fc30.noarch freexl-1.0.5-3.fc30.x86_64 fribidi-1.0.5-2.fc30.x86_64 gdal-libs-2.3.2-7.fc30.x86_64 gdk-pixbuf2-2.38.1-1.fc30.x86_64 gdk-pixbuf2-modules-2.38.1-1.fc30.x86_64 geos-3.7.1-1.fc30.x86_64 giflib-5.1.9-1.fc30.x86_64 graphite2-1.3.10-7.fc30.x86_64 gtk-update-icon-cache-3.24.8-1.fc30.x86_64 gtk2-2.24.32-4.fc30.x86_64 harfbuzz-2.3.1-1.fc30.x86_64 hdf5-1.8.20-6.fc30.x86_64 hicolor-icon-theme-0.17-5.fc30.noarch jasper-libs-2.0.14-8.fc30.x86_64 jbigkit-libs-2.1-16.fc30.x86_64 lcms2-2.9-5.fc30.x86_64 libXcomposite-0.4.4-16.fc30.x86_64 libXcursor-1.1.15-5.fc30.x86_64 libXdamage-1.1.4-16.fc30.x86_64 libXfixes-5.0.3-9.fc30.x86_64 libXft-2.3.2-12.fc30.x86_64 libXi-1.7.9-9.fc30.x86_64 libXinerama-1.1.4-3.fc30.x86_64 libaec-1.0.4-1.fc30.x86_64 libdap-3.20.3-1.fc30.x86_64 libgeotiff-1.4.3-3.fc30.x86_64 libgta-1.0.9-2.fc30.x86_64 libjpeg-turbo-2.0.2-1.fc30.x86_64 libkml-1.3.0-19.fc30.x86_64 libspatialite-4.3.0a-11.fc30.x86_64 libtiff-4.0.10-4.fc30.x86_64 libwebp-1.0.2-2.fc30.x86_64 netcdf-4.4.1.1-12.fc30.x86_64 nspr-4.21.0-1.fc30.x86_64 ogdi-3.2.1-4.fc30.x86_64 openblas-0.3.5-5.fc30.x86_64 openblas-openmp-0.3.5-5.fc30.x86_64 openblas-serial-0.3.5-5.fc30.x86_64 openblas-threads-0.3.5-5.fc30.x86_64 openblas-threads64_-0.3.5-5.fc30.x86_64 openjpeg2-2.3.1-1.fc30.x86_64 pango-1.43.0-3.fc30.x86_64 pixman-0.38.0-1.fc30.x86_64 poppler-data-0.4.9-3.fc30.noarch protobuf-c-1.3.1-2.fc30.x86_64 unixODBC-2.3.7-4.fc30.x86_64 xerces-c-3.2.2-2.fc30.x86_64 Complete!

接下来,初始化数据库:开云体育电动老虎机

$ sudo /usr/bin/postgresql-setup——initdb

现在在数据库服务器配置文件中启用插件开云体育电动老虎机/var/lib/pgsql/data/postgresql.conf添加如下参数:

# MODULES shared_preload_libraries = 'decoderbufs' # REPLICATION wal_level = logical # minimal, archive, hot_standby, or logical(更改需要重新启动)max_wal_senders = 8 # walsender进程的最大数量(更改需要重新启动)wal_keep_segments = 4 #在日志文件段,每个16MB;0禁用#wal_sender_timeout = 60s #毫秒;0禁用max_replication_slots = 4 #最大复制插槽数(更改需要重新启动)

配置安全文件/var/lib/pgsql/data/pg_hba.conf对于Debezi开云体育电动老虎机um将使用的数据库用户(例如:开云体育官方注册网址开云体育官方注册网址),添加以下参数:

本地复制debezium trust开云体育官方注册网址主机复制debezium 127.0.0.1/32 trust主机复制debezium::1/128 trust

最后,重启PostgreSQL:

$ sudo systemctl restart postgresql

就是这样:现在我们有了一个PostgreSQL数据库,它可以将更改流发送到Deb开云体育电动老虎机ezium PostgreSQL连接器。开云体育官方注册网址当然,插件也可以安装到现有的数据库(Postgres版本9及更高版本),只需安装RPM包并按上述方法设置配置和安全文件即可。开云体育电动老虎机

前景:pgoutput

虽然decoderbufs插件是我们推荐的逻辑解码插件,但在某些情况下您可能无法使用它。更具体地说,通常不具备在Amazon RDS等基于云的环境中安装自定义插件的灵活性。

这就是为什么我们要探索第三种选择到decoderbufs和wal2sjon,这是利用Postgres的逻辑复制机制。有一个内置插件,pgoutput基于此,自版本10以来,每个Postgres数据库中都有。开云体育电动老虎机我们仍在探索使用的影响(和可能的限制)pgoutput但到目前为止,事情看起来很有希望,它最终可能会成为一个有价值的工具。

敬请期待更多细节!

雅罗西克Pechanec

Jiri是Red Hat的软件开发人员(前质量工程师)。他职业生涯的大部分时间都花在Java和系统集成项目和任务上。他住在捷克共和国布尔诺附近。


关于Debe开云体育官方注册网址zium

开云体育官方注册网址Debezium是一个开源的分布式平台,它将现有数据库转换为事件流,因此应用程序几乎可以立即看到并响应数据库中提交的每一个行级更改。开云体育电动老虎机开云体育官方注册网址Debezium是建立在卡夫卡并提供卡夫卡连接监控特定数据库管理系统的兼容连接器。开云体育电动老虎机开云体育官方注册网址Debezium在Kafka日志中记录了数据更改的历史,所以你的应用程序可以在任何时候停止和重新启动,并且可以很容易地使用它没有运行时错过的所有事件,确保所有事件都被正确和完整地处理。开云体育官方注册网址Debezium是开源Apache许可证,版本2.0

参与

我们希望您觉得Debezium有趣开云体育官方注册网址且有用,并愿意尝试一下。在Twitter上关注我们@开云体育官方注册网址debezium在Zulip上和我们聊天,或加入我们的邮件列表与社区对话。所有的代码都是开源的GitHub上,因此在本地构建代码并帮助我们改进现有连接器并添加更多连接器。如果您发现了问题或对我们如何改进Debezium有想法,请告诉我们开云体育官方注册网址记录问题

Baidu
map