我是Docker的新手。也是NiFi和Kafka的新手......
问题:如何使用Docker堆栈管理Avro?我是否为我在docker-compose.yml
文件中构建的每个图像安装Avro?我应该以某种方式有一个单独的容器吗?
细节:
我的愿景是通过NiFi运行ETL流程的5机器群到Kafka(使用Avro),然后将消息传递到具有独特数据库的3个PostgreSQL容器。另一个容器将运行Web服务器以提供对DB的访问。
这是三个容器加上三个PostgreSQL容器实例。
其他服务/微服务可以存在于现有容器中或最终分离到单独的容器中(例如:API)。
Apache Nifi包含读取和写入Avro数据所需的所有库。
您可能还想考虑使用Confluent Schema Registry的容器来集中管理Avro数据。
NiFi与注册表集成。 Kafka并不关心您是否将Avro发送给它,只有客户关心如何编码或解码数据
如果您只关心Kafka,Avro和Postgres,请尝试使用Kafka Connect的JDBC连接器,然后无需管理NiFi
如果您确实希望在各自的群集设置中使用Nifi和Kafka,则它们都依赖于Zookeeper实例