我们正在尝试使用 kafka 集群实现 Kafka HA。在做R时
我们理解为什么zookeeper应该至少有3个节点,因为对于首领选举,至少应该有(n-1)/2个节点
但不清楚为什么至少需要3个Kafka经纪人。为什么我们不能用2个kafka代理实现HA
除了@hqt回答:
您可以设置一个只有2个代理的Kafka HA集群,但推荐的生产复制因子是3,因此您需要3个代理才能实现这一点。
此外,您应该考虑到Confluent正在努力将领导者选举迁移到Kafka,因此将来您将不再需要Zookeeper,这可能意味着拥有奇数的Kafka代理。
由于quorum属性,Zookeeper的最小节点数为3。它应该是奇数,因为没有使用偶数个节点。例如:总节点数为8的动物园管理员可以降级为7。动物园管理员中的许多节点也因为一致性算法而不好。(例如:帕克索斯)
对于Kafka集群,我个人认为设置2个代理是可以的。但最好有3个经纪人。原因是维护ISR-同步副本。
假设您的Kafka集群有2个代理。为了维护数据的高可用性和一致性,我们将副本和ISR都设置为2。有趣的部分是min-ISR属性。如果您将min-ISR设置为1,那么主服务器会失败,很可能您没有任何剩余的副本。如果你设置最小ISR为2,当领导者或跟随者失败时,生产者和消费者都不能工作。
如果我们的 Kafka 集群有 3 个代理,我们将 ISR 设置为 3,则最小 ISR 等于 2。使用此配置,我们接受在工作时丢失 1 个副本(领导者或追随者)的风险。例如,如果我们失去了领导者,则至少有一个追随者同步进行切换。如果我们失去了一个追随者,我们仍然有一个追随者将最小 ISR 保持在 2。
我正在尝试创建一个TWS API脚本,它将在STK市场下订单。我发现有各种各样的市场规则,它们规定了最低价格增量。我查询系统以找出,但我不知道如何解释的结果,例如,market rule ID提供以下结果: 市场规则ID 26提供了以下结果: 市场规则ID 1916提供了以下结果: 当我试图在TWS应用程序中使用市场规则进行STK交易时,我可以看到增量为0.50 GBP,但我不确定如何将其追溯到上
在Julia中,打印格式化字符串的语法如下: 为什么是宏而不是函数?这样它就可以接受不同数量的参数了吗?
问题内容: 即使int的最大值是2 31 -1,为什么Java HashMap的最大容量是1 << 30而不是1 << 31 ?最大容量初始化为 问题答案: Java使用带符号的整数,这意味着第一位用于存储数字的符号(正/负)。 一个四字节整数具有32位,其中数字部分由于有符号位而只能跨越31位。这将数字范围限制为 2 ^ 31-1 (由于包含0)到 -(2 ^ 31) 。
问题内容: 我一直在阅读Go,并为这个基本问题感到困惑。 在Go中,很明显,切片更灵活,并且在需要一系列数据时通常可以代替数组使用。 阅读了大多数文档,他们似乎鼓励开发人员只使用切片而不是数组。我得到的印象是,创建者可以简单地将数组设计为可调整大小的,而无需整个切片部分即可完成。实际上,这样的设计会使该语言更易于理解,甚至鼓励使用更多惯用的代码。 那么,为什么创建者首先要允许数组呢?什么时候可以使
我的讲师在课堂上问过我这个问题,我想知道为什么是宏而不是函数?
据我所知,例如,整数缓存了值为-128到127的实例。这是JLS的要求。JLS 5.1.7: 如果要装箱的值p是对布尔、字节、字符、短、int或长类型的常量表达式(§15.29)求值的结果,且结果为true、false、包含“\u0000”到“\u007f”范围内的字符,或包含-128到127范围内的整数,则a和b是p的任意两个装箱转换的结果。a==b的情况总是这样。 所以我能理解使用整数的意义。
问题内容: 我不确定为什么列出项目时为什么需要使用ul-li而不是简单地使用div。我可以使两者看起来完全一样,因此与创建div相比,创建无序列表的功能优势在哪里? 问题答案: 为了语义正确。HTML具有表达事物列表的功能,它可以帮助Google机器人,屏幕阅读器以及所有不仅仅关心网站外观的用户更好地了解您的内容。
问题内容: 我不明白为什么很少有导入包在“ java”后面附加“ x”。是什么原因?难道就和其他人一样吗? 问题答案: Swing最初是Java的扩展-可单独下载的库。它成为Java 1.2中“主要” JRE的一部分。一个单独的库声称拥有java。*包,这很奇怪,因此是目前的情况。还有许多其他扩展都有类似的故事。 在Swing的维基百科的文章有其历史提供更多的信息。