当前位置: 首页 > 知识库问答 >
问题:

如何从azure中公开kafkaendpoint并从onpremise应用程序中使用它?

阎雪峰
2023-03-14

我正试图为以下内容做POC:

kafka:
     image: confluentinc/cp-kafka:latest
     depends_on:
       - zookeeper
     ports:
     - "9092:9092"
     environment:
       KAFKA_ADVERTISED_HOST_NAME: kafka
       KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
       KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://kafka:9092
       KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
       KAFKA_BROKER_ID: 1
       KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
       KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
       KAFKA_HEAP_OPTS: "-Xmx256M -Xms128M"
       KAFKA_LOG_DIRS: /var/lib/winkafka 

"Endpoint": "kafka:9092"
"Endpoint": "Azure Vm's Public IP:9092"  

但是,它不能从我的本地应用程序连接到Azure上的Kafka。

你能建议我在这里做错了什么吗?我将如何从本地应用程序连接到运行在azure(或任何云)上的容器中的kafka?

共有1个答案

屠杰
2023-03-14

您需要为单独的网络(内部Azure vs公共IP)配置Kafka侦听器。详见https://rmoff.net/2018/08/02/kafka-listeners-complinated/。

免责声明:我写了博客文章:)

 类似资料:
  • 我用于处理和文件的一般java代码是: 我必须处理3.0版本的才能使用以下函数: parse-xml-fragment() 预期产出: 谁能提供一个解决方案吗?

  • 我正在docker容器中运行react样板应用程序,托管Azure Web应用程序容器。 在本地,我通过以下方式启动应用程序: 我的docker文件如下所示: 应用程序设置 我尝试过用键/值对编辑应用程序设置,但没有效果: 显然Azure只为入站流量公开端口80和443: 80:应用程序服务环境中应用程序服务计划中运行的应用程序的入站HTTP流量的默认端口。在启用ILB的ASE上,此端口绑定到AS

  • 我的Spring Boot应用程序只是有一个计数器指标。我只是不知道如何将这些信息发送给普罗米修斯。我正在使用Maven(构建工具)和Spring Boot(Java)。

  • 问题内容: 用代码退出Java应用程序的最佳方法是什么? 问题答案: 您可以用于此目的。 根据oracle的Java 8文档: 终止当前正在运行的Java虚拟机。参数用作状态码;按照惯例, 非零状态代码表示异常终止 。 此方法在类Runtime中调用exit方法。此方法永远不会正常返回。 该调用实际上等效于该调用:

  • 我在公用文件夹中有一个javascript文件,我想将该文件导入src/components文件夹中的组件。 但我不能在我的组件中做这样的事情: 因为我得到了以下错误: 找不到模块:您试图导入项目src/目录之外的.../.../public/recorder。不支持src/之外的相对导入。您可以将其移动到src/中,也可以从项目的node_modules/中添加符号链接。 据我所知,它不允许在

  • 问题内容: 我希望能够从终端中运行的node.js程序打开,创建一些内容,保存并退出,然后获取文件的内容。 我正在尝试做这样的事情: 但是,当它运行时,它只是将终端挂起。 我也尝试过,并得到相同的结果。 更新: 由于此过程是从运行readline的提示符下键入的命令启动的,因此使此过程变得复杂。我将最新版本的相关部分完全提取到了文件中。全文如下: 如上所示,它的工作方式是显示提示几秒钟,然后启动到