Docker Swarm 中所有服务的基本映像中的 Avro? NiFi --> Kafka --> PostgreSQL

Avro in base image for all services in a Docker Swarm?? NiFi --> Kafka --> PostgreSQL

我是 Docker 的新手。 NiFi 和 Kafka 也是新手......

问题: 如何使用 Docker 堆栈管理 Avro?我是否为我在 docker-compose.yml 文件中构建的 每个 图像安装 Avro?我应该有一个单独的容器吗?


详情:

我的愿景是通过 NiFi 将 ETL 处理通过 NiFi 到 Kafka(使用 Avro),然后将消息拉到 3 个具有独特数据库的 PostgreSQL 容器中。另一个容器将 运行 一个网络服务器来提供对数据库的访问。

所以这是三个容器加上三个 PostgreSQL 容器实例。

其他 services/microservices 可以存在于现有容器中或最终分拆到单独的容器中(例如:API)。

A​​pache Nifi 包含读取和写入 Avro 数据所需的所有库。

您可能还想考虑使用 Confluent Schema Registry 的容器来集中管理 Avro 数据。

NiFi 已与注册表集成。 Kafka 不关心你向它发送 Avro,只有客户端关心数据是如何编码或解码的

如果您只关心 Kafka、Avro 和 Postgres,请尝试使用 Kafka Connect 的 JDBC 连接器,然后管理 NiFi 就没必要了

如果您确实希望在各自的集群设置中使用 Nifi 和 Kafka,它们都依赖于 Zookeeper 实例