Debezium如何部署
debezium 有下面三种部署方式,其中最常用的就是 kafka connect。
kafka connect
一般情况下,我们通过 kafka connect 来部署 debezium,kafka connect 是一个框架和运行时:
- source connectors:像 debezium 这样将记录发送到 kafka 的source connector
- sink connectors:将记录从 kafka topic传播到其他系统的 sink connector
下图展示了一个基于 debezium 的 CDC pipeline 的架构,这里 debezium 作为一个 kafka connect 的一种 source connector。
如图所示,debezium mysql 连接器用来捕获对 mysql 数据库的更改,debezium postgreSQL 连接器用来捕获对于 postgres 数据库的更改。
每个 debezium 连接器都会建立一个到源数据库的连接:
- mysql连接器使用一个客户端库来访问 binlog;
- postgres 连接器从逻辑复制流中读取数据。
默认情况下,一个数据库表的更改被写入一个 Kafka topic,当然也可以通过topic 重路由将更改写入到指定的 topic,或者将多个数据库表的更改写入到同一个 topic。
而Kafka Connect作为Kafka broker之外的一个独立服务运行。
在更改事件到达 Apache Kafka 之后,Kafka Connect 生态系统中的不同 sink connector 可以将记录流式传输到其他系统和数据库,如Elasticsearch,数据仓库和分析系统,或缓存。
debezium server
第二种部署Debezium的方法是使用Debezium服务器。Debezium服务器是一个可配置的、随时可用的应用程序,它将更改事件从源数据库流式传输到各种消息传递基础设施。
下图显示了使用Debezium服务器的CDC pipeline的架构:
Debezium服务器配置为使用Debezium源连接器之一从源数据库捕获更改。变更事件可以序列化为不同的格式,如JSON或Apache Avro,然后将被发送到各种消息基础设施之一,如Amazon Kinesis, Google Cloud Pub/Sub或Apache Pulsar。
参考:https://debezium.io/documentation/reference/1.6/operations/debezium-server.html
embedded engine
第三种部署方式是将 debezium connector 作为一种嵌入式引擎。在这种情况下,Debezium不会通过Kafka Connect运行,而是作为一个library嵌入到你的自定义Java应用程序中。
优点:不需要部署完整的 kafka 和 kafka connect 集群。
适用场景:文章来源:https://www.toymoban.com/news/detail-692955.html
- 在应用程序中消费更改事件,而不是将更改事件发送到 kafka topic;
- 将更改事件流式传输到其他消息代理。
参考:https://debezium.io/documentation/reference/1.6/operations/embedded.html文章来源地址https://www.toymoban.com/news/detail-692955.html
到了这里,关于Debezium的三种部署方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!