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

如何处理 kubernetes 中 kafka 和 zookeeper 的失败 senario

孔斌
2023-03-14

我在服务器1、服务器2和服务器3上运行zookeeper设置,同样kafka也在服务器1、服务器2和服务器3上运行。

安装程序正在kubernetes中运行。

问题陈述:

>

  • 如果一个动物园管理员设置关闭,整个设置都会关闭,因为kafka依赖于动物园管理员。我说得对吗?

    如果Q1正确-是否有任何方法来进行设置,例如如果一个动物园管理员服务器将停机,那么kafka应该按原样运行?

    如何在kubernetes设置中公开kafka port?

    在kubernetes中为正式服持久化数据的推荐方法是什么?

  • 共有1个答案

    呼延博易
    2023-03-14

    我看不出动物园管理员的问题与 k8s 有什么关系......但是你绝对应该设置亲和力规则,以便 Zookeeper 和 Kafka 不在同一物理服务器上或共享相同的磁盘。

    如果三个动物园管理员中有一个倒下了,你将面临一个分裂的大脑事件,因为没有一个动物园管理员知道谁应该负责领导。是的,这实际上会使Kafka崩溃或腐败。

    为了降低这种风险,您可以选择运行5个动物园管理员,在这种情况下,您最多可以丢失3个服务器以达到相同的状态。权威指南在前几章中涵盖了这些概念

    关于其他问题-一般来说,NodePorts和PVCs。

    在Github上使用流行的Kafka运算符之一,您无需考虑设置这些属性。

    您仍然必须在任何安装中手动执行 Kafka 管理任务...不过,如果您想减少工作量,您可以使用巡航控制等额外服务。

     类似资料:
    • 我正在与我无法控制的遗留库集成。 它定义了以下接口: 这个“subscribe”方法被不同的线程频繁调用。我关心“Future.get()”的结果的唯一情况是当它失败时,所以我可以获取并处理异常。这不一定发生在调用线程中。另外,在“Future.get()”上阻塞调用线程对我来说是非常昂贵的,因为即使成功也可能需要几秒钟才能完成。 所以我的任务是以某种方式“后处理”所有这些期货,过滤失败的期货。基

    • 我想处理不同的失败案例(返回为尝试)。 示例代码 如果是或只需打印消息,对于所有其他异常,打印堆栈跟踪。 然而,ex永远只是一个可丢弃的,因此是一个没有结果的类型测试(根据IntelliJ,类型Throwable的值不能也是StatsException.type) 更糟糕的是,我会遇到编译错误: 以惯用的方式处理不同的失败案例的最佳方式是什么?

    • 我们正在Netty之上实现SSL。但是当前的设计有一个缺陷。如果失败,客户端将重试连接到服务器。这是网络或服务器负载过重问题所需要的。但是错误的客户端凭据会导致持续的失败。 有一些解决办法: 客户端-服务器连接可以故障转移到未加密模式(从管道中删除SslHandler)。 客户端可以死亡并在知道它是SSL异常时抛出异常。 不幸的是,我不知道如何使用Netty实现这一点。几个问题: < li >如何

    • 我用JQuery 2.0.3这样做http post: json在服务器上发布和编写,但是响应和在AFAIK中没有启用。接收json数据的控制器代码为 我如何还能使成功和失败得到发布的json成功接收或提交失败的回调?它可以提交数据,但是来自服务器的响应不做任何事情,这与控制器方法没有区别,只是用语句写入数据。您是否可以建议一个改进,以便发布数据的javascript也接收响应,我认为如果服务器出

    • 我正在使用从2个Kafka主题中消费,每个主题都有6个分区。喷口进入单个螺栓以解压缩相关字节,然后进入第二个螺栓以进一步处理。 当我看到storm-ui的时候,这些数字没有多大意义,我希望有人能给我一些启示。 > Kafka的口水说它“收集”了3600个元组,失败了73M个元组。再看下一组的螺栓,我看到有的已经顶起了73米,有的已经顶起了1.3米(没有出现故障),而有的已经顶起了1.3米(没有出现

    • 我有一个spring boot应用程序与单个Kafka消费者从一些主题获取消息。但有时在处理消息时会出现错误。 我理解我需要禁用自动提交并手动提交成功的消息,但是,在这种情况下,如果我没有为这个异常情况抛出任何异常,并手动提交每个下一个成功的消息,那么我将丢失前一个不成功的消息,对吗?