我试图理解使用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服务器支持的。