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

EC2 上的 Kafka 代理未连接到本地网络上的动物园管理员

阚元白
2023-03-14

伙计们,如果有人经历过这个问题,请你帮帮我,我一直在绞尽脑汁,但没有成功,我尽可能多地阅读了很多帖子。

场景我有动物园管理员/两个经纪人和一个生产者和消费者在我的本地分区上运行,来自我子网内的不同IP地址,一切都很完美。我的生产者生产-消费者消费生活快乐。

我想在EC2上复制这一点,并在EC2中创建一个kafka代理,并希望该代理连接到我的动物园管理员,但由于某种原因,EC2上的代理无法连接到我。

现在为了清楚起见:我的笔记本电脑IP :1.1.1.1 (1)在附加的图像Zookeeper IP:z . z . z . z(2)在附加的图像Broker 1在我的笔记本电脑上:b.b.b.b.b

所以问题来自 EC2 当我尝试连接到 zookeeper 时,我收到错误和超时 - 我不明白发生了什么,我也为我的笔记本电脑打开了端口/IP,并在我的入站出站会话中安装了这些端口/IP。

请有人能帮助-我也不明白为什么EC2上的Kafka broker试图连接到z . z . z . z . us-east-2 . compute . internal....

请原谅我,伙计们,但我不确定我是否需要改变。

在代理配置中:我将 zookeeper 配置设置为 z.z.z.z:2181,1.1.1.1:2181

从EC2终端,我可以ping我的笔记本电脑公共DNS,但无法ping我的内部分区IP,动物园管理员正在运行该IP。我认为这可能也是一个原因。

如果你能帮我弄清楚这件事,如果你在纽约,我就喝啤酒。

非常感谢。

EC2 Kafka日志截图

共有1个答案

益和雅
2023-03-14

解决方案我找不到一个明确的答案-我查看了文档-所以我后退了一步,开始检查日志。这是我发现的:

ssh/scp可以从我的zoo在EC2工作,但不能从EC2在我的子网上的manjaro专用IP上工作

所以根本的问题是我没有打开端口,所以我在路由器上打开了一个端口,更新了(非常重要的)EC2服务器中的ip地址。我打开并转发给我的Kali(停止Majaro在Kali上的Zookeeper)IP和2181

像魅力一样工作——EC2能够连接到动物园管理员——一切都很好。

现在,从我的Fedora,我启动了一个生产者,并让EC2消费-在日志中确认,并在CMAK中确认。

但是从我的 Ubuntu 消费者那里,即使我看到消费者能够连接,我也无法消费消息,消费者组也无法创建。

所以这里有一些发现:

> 不要使用 Manajaro - 使用 Kali -

  • 我不是 100% 确定原因,但我的 yum 更新导致 Kali 动物园管理员能够更轻松地连接到 EC2 - 此外,我可以更轻松地配置 Kali - 我很确定两者都是一样的,但我发现导航 Kali 比 Manjaro 更容易。所以我在 Kali 上有 zookeeper - 我更多地使用 Kali 我喜欢它 - 我可以在我的路由器上从 Kali 运行我的 python 套接字脚本,并在 Kali 内创建一个新子网 - 我不能从 Manjaro - 从根本上想在同一分区/盒子上运行另一个代理。所以Kali竖起大拇指,然后是Fedora,LinuxMint,然后是Ubuntu,然后是Manjaro - 再次我100%确定我正在做一些非常愚蠢的事情,这不是对这些发行版的反映,这只是我个人对使用它们的看法。另外,由于某种原因,我在 Kali 上使用 sudo tracert 获得的信息比 Manjaro 更多 - 总而言之,Manjaro 我将关闭并且不触摸/使用太多时间浪费(恕我直言)它太 GUI 驱动了......

    在Manjaro上,由于某种原因,IP被设置为DHCP并继续翻转,我还发现如果IP由于某种原因翻转,我需要刷新主题上的未提交消息,然后在CMAK中创建一个新集群,然后创建一个主题-我不确定为什么会出现这种情况-我使用的是2.7.0。

    此外-由于我不想在EC2上花费$$,我启动了基本的Amazon Linux2,然后创建了我自己的AMI w Java/Python(注意,yum在Python 2上运行,所以您需要重新链接到Python 2以进行任何yum更新,然后链接到3.7)/Kafka-但总而言之,我必须将代理mem设置为128M/526M,因为明显的限制,并且因为我想使用AWS的免费服务)-所以我认为我的消费者连接但未能使用任何消息的原因是因为吞吐量和网络带宽-我也认为我犯了一个错误-应该使用弗吉尼亚州北部的区域,而不是位于纽约的俄亥俄州。

    从我所读到的到目前为止-我试图做的w端口转发本质上是不推荐的,Kafka文档特别指出,要在VPN等中的可信网络文件中做到这一点-但我必须测试以确保它有效-只是概念证明

    在EC2上,该系统工作得非常完美,没有问题。

    所以问题解决了 - 但需要检查 ubuntu 上的消费者为什么我无法注册消费者组 - 但谢谢大家,我想测试的工作。

  •  类似资料:
    • 各位,我最近在ec2上设置了zookeeper。我遵循了ec2的手册,但它仍然显示了错误: 但该实例正在后台运行。然后当我使用/zkCli。sh–server-server-server-ip:2181命令,如下所示 连接似乎要花很长时间。 我根据文档做了所有的设置,我不知道我做错了什么。下面是我的conf文件,myid位于dataDir文件夹中 仅供参考,我已将端口2181、2888和3888添

    • 我试图在本地机器上以分布式模式配置Apache Drill。为此,我已经使用配置文件(这里,sagar pc解析为我的wlan0 inet addr): Zookeeper服务成功运行,启动Apache Drill后,它能够根据文件。此外,状态检查告诉我: 钻头在运转 钻头的ZooManager输出: 文件内容: 然而,即使完成了所有这些步骤,当我试图在目录中运行命令时,它也会给我以下错误: 在Z

    • 分布式 Apache HBase 安装依赖于正在运行的 ZooKeeper 集群。所有参与节点和客户端都需要能够访问正在运行的 ZooKeeper 集合。 Apache HBase 默认为您管理 ZooKeeper“集群”。它将启动和停止 ZooKeeper 集合作为 HBase 启动/停止过程的一部分。您还可以独立于 HBase 管理 ZooKeeper 集合,只需将 HBase 指向它应该使用

    • 假设我有 3 台 Kafka 服务器。服务器 1 zoopkeeper1 服务器 2 zoopkeeper2 服务器 3 zoopkeeper3 在集群配置中,zoopkeepers 会发生什么?它们是为每个服务器单独维护的,还是会在群集配置中同步其数据?

    • 在Zookeeper和代理身份验证上启用SASL时,我面临以下错误。 以下配置在JAAS文件中给出,该文件作为KAFKA_OPTS传递,将其作为JVM参数:- Kafka经纪人的服务器。属性设置了以下额外字段:- Zookeeper属性如下所示: