decoderbufs和pgoutput在Postgres中作为逻辑解码插件的区别



我试图理解使用decoderbufs与pgouput之间的区别,当决定使用插件在Postgres中使用Dbezium进行逻辑解码时。

我可以任选一种,但是使用每一种的优缺点是什么呢?

更重要的是,我不太清楚decoderbufs在幕后是如何工作的。

一个例子:pgoutput需要publications,这有助于限制replication_slots将保存的信息,因此我可以使用该插槽仅查看特定表(IMO)。但另一方面,我不清楚decoderbufs是如何工作的。

任何见解都会非常有用:pray:

尝试搜索,但没有找到太多信息。

pgoutput是Postgres默认使用的逻辑解码输出插件。它对WAL文件条目进行解码,并将更改数据捕获事件发送给使用者。它以二进制格式发送事件。消息格式文档在这里

decoderbufs是另一个逻辑解码插件,用于将更改数据捕获事件作为协议缓冲区交付。它不是Postgres核心的一部分。您需要构建和安装扩展。请参阅https://github.com/xstevens/decoderbufs

安装插件后,你需要更新Postgres配置来加载共享库。这个github项目没有被积极维护。所以最好使用Debezium团队积极维护的这个项目的分叉。请参阅https://github.com/debezium/postgres-decoderbufs

解码器不支持主要的云供应商,如AWS, Azure,谷歌云。因此,推荐将decoderbufs用于内部部署。而poutput是由所有主要云供应商提供的Postgres服务器支持的。

最新更新