Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker Swarm中所有服务的基础映像中的Avro??NiFi-->;卡夫卡-->;PostgreSQL_Docker_Apache Kafka_Avro_Apache Nifi - Fatal编程技术网

Docker Swarm中所有服务的基础映像中的Avro??NiFi-->;卡夫卡-->;PostgreSQL

Docker Swarm中所有服务的基础映像中的Avro??NiFi-->;卡夫卡-->;PostgreSQL,docker,apache-kafka,avro,apache-nifi,Docker,Apache Kafka,Avro,Apache Nifi,我是Docker的新手。尼菲和卡夫卡也是新来的 问题:如何使用Docker堆栈管理Avro?我是否为我在docker compose.yml文件中构建的每个映像安装Avro?我应该有一个单独的容器吗 详细信息: 我的设想是一个5机器群,通过NiFi到Kafka(使用Avro)运行ETL过程,然后将消息发送到3个带有唯一数据库的PostgreSQL容器。另一个容器将运行一个Web服务器来提供对DBs的访问 这就是三个容器加上三个PostgreSQL容器实例 其他服务/微服务可以存在于现有容器中,

我是Docker的新手。尼菲和卡夫卡也是新来的

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


详细信息:

我的设想是一个5机器群,通过NiFi到Kafka(使用Avro)运行ETL过程,然后将消息发送到3个带有唯一数据库的PostgreSQL容器。另一个容器将运行一个Web服务器来提供对DBs的访问

这就是三个容器加上三个PostgreSQL容器实例


其他服务/微服务可以存在于现有容器中,也可以最终衍生到单独的容器中(例如:API)。

ApacheNIFI包括读取和写入Avro数据所需的所有库

您可能还想考虑使用一个用于集中管理AVRO数据的容器。

NiFi与注册表集成。卡夫卡不在乎你是否向它发送了Avro,只有客户关心数据的编码或解码方式

如果您只关心Kafka、Avro和Postgres,请尝试使用Kafka Connect的JDBC连接器,这样就不需要管理NiFi


如果您确实希望在各自的集群设置中使用Nifi和Kafka,那么它们都依赖于Zookeeper实例,ApacheNIFI包含读取和写入Avro数据所需的所有库

您可能还想考虑使用一个用于集中管理AVRO数据的容器。

NiFi与注册表集成。卡夫卡不在乎你是否向它发送了Avro,只有客户关心数据的编码或解码方式

如果您只关心Kafka、Avro和Postgres,请尝试使用Kafka Connect的JDBC连接器,这样就不需要管理NiFi


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

这太棒了-谢谢!听起来我将为模式注册表和Zookeeper添加一个容器。为了清楚地得到最终答案:我永远不会将Avro作为服务“运行”,只会将模式注册表。Avro本身将安装在我需要编码/解码的任何地方,该层将与模式注册表通信。“Avro作为服务”本质上就是注册表。它不是必需的,但它允许一种“avroid数据库”,而不是将模式嵌入卡夫卡记录本身。(它使您的消息更小!;))任何需要Avro的客户端都需要Java类路径中的Avro库。schema registry、NiFi和confluent的Avro serde客户机都提供了它。您还可以在confluent文档中找到与注册表的集成,用于任何JDBC数据库,其中包括用于运行所有必要组件的大量资源和示例容器。你只需要把nifi加进去。这太棒了-谢谢!听起来我将为模式注册表和Zookeeper添加一个容器。为了清楚地得到最终答案:我永远不会将Avro作为服务“运行”,只会将模式注册表。Avro本身将安装在我需要编码/解码的任何地方,该层将与模式注册表通信。“Avro作为服务”本质上就是注册表。它不是必需的,但它允许一种“avroid数据库”,而不是将模式嵌入卡夫卡记录本身。(它使您的消息更小!;))任何需要Avro的客户端都需要Java类路径中的Avro库。schema registry、NiFi和confluent的Avro serde客户机都提供了它。您还可以在confluent文档中找到与注册表的集成,用于任何JDBC数据库,其中包括用于运行所有必要组件的大量资源和示例容器。你只需要把nifi加进去。