1

我有一个要求,我必须捕获 MongoDB ChangeStream(插入/更新等)事件并采取一些措施(保存到 OracleDB)。我想到了这个似乎很好的设计:

"MongoDB-ChangeStream" --> "MongoDB Source Connector for Apache Kafka" --> "Kafka Broker-Topic" --> "Java Service" --> OracleDB

我的问题是,我使用的是 MongoDB-4.0,并且在 MongoDB-4.2 中引入了“MongoDB Source Connector for Apache Kafka”。我还能在 MongoDB-4.0 中使用“MongoDB Source Connector for Apache Kafka”吗?

MongoDB Source Connector for Apache Kafka - 官方页面: https ://www.confluent.io/hub/mongodb/kafka-connect-mongodb

“MongoDB Source Connector for Apache Kafka”官方页面并没有谈及MongoDB版本方面的任何先决条件。

我的第二个问题,这个(Apache Kafka 的 MongoDB 源连接器)可以在 Windows 上设置吗?

感谢任何帮助。

4

2 回答 2

1

答案已经在文档中:

如果您仅将更改流与集合一起使用,则 Kafka 源连接器需要 MongoDB 3.6 或更高版本作为您的数据源。如果需要监视数据库或部署,则需要 MongoDB 4.0 或更高版本。


关于你的第二个问题;是的,可以在 Windows 上运行 Kafka。

于 2020-05-08T11:12:44.570 回答
0

MongoDB(4.0) ChangeStreams 的工作解决方案,带有官方 MongoDB 连接器 (mongodb-kafka-connect-mongodb-1.1.0),适用于 Apache Kafka,不使用 Confluent Hub 客户端

  1. 下载官方 MongoDB Kafka 连接器: i. open https://www.confluent.io/hub/ ii. search "mongodb" iii. select from dropdown "MongoDB Connector for Apache Kafka" iv. Click on Download in Download installtion (note I am not using Confluent) v. unzip the downloaded file (on windows) eg. F:\software\mongodb\mongodb-kafka-connect-mongodb-1.1.0 vi. inside "etc" folder open file "MongoSourceConnector.properties" vii. Make only one change with respect to MongoDB url: connection.uri=mongodb://localhost:27017,localhost:27018 viii. One change in Kafka: In F:\software\kafka_2.12-2.4.1\config\connect-standalone.properties: plugin.path=F:\\software\\mongodb\\mongodb-kafka-connect-mongodb-1.1.0
  2. 启动动物园管理员: bin/zookeeper-server-start.sh config/zookeeper.properties
  3. 启动卡夫卡: .\bin\windows\kafka-server-start.bat .\config\server.properties

  4. 启动 Kafka-Connect: bin\windows\connect-standalone.bat config\connect-standalone.properties F:\software\mongodb\mongodb-kafka-connect-mongodb-1.1.0\etc\MongoSourceConnector.properties

  5. 将新文档添加到 MongoDB 集合,您应该创建一个新主题 dbName.collectionName 并且 ChangeStream 事件应该出现在该主题上。
于 2020-05-09T10:42:01.397 回答