我们在kafka属性文件中有broker.id属性。
Broker.id 的重要性是什么?如果我们在不同虚拟机上运行的所有 kafka 实例上为 Broker.id 分配相同的整数会怎样。
我读到了有关使用 Zookeeper 实现 Java 领导者选举的内容。我很清楚这里描述的算法。但我有一个关于算法的微妙问题要问。
在所解释的算法中,节点选择“/election”节点的所有子节点,并选择最小的节点作为领导者。
在这种情况下,他们如何决定哪些节点在,哪些不在。我想知道什么条件决定阻止一个迟到的节点创建其子节点并参与领导者选举。是不是超时了?如果是的话,如何以及在哪里计算?
我们发现 Apache Kafka 2.3、2.4.0、2.4.1 和 2.5.0 版本的主题中的消息消失了。当我们对集群进行滚动部署时,我们注意到了这一点,不幸的是它并不是每次都会发生,所以它非常不一致。
有时我们会丢失主题内的所有消息,有时我们会丢失分区内的所有消息。当发生这种情况时,以下日志是一个常量:
[2020-04-27 10:36:40,386] INFO [Log partition=test-lost-messages-5, dir=/var/kafkadata/data01/data] Deleting segments List(LogSegment(baseOffset=6, size=728, lastModifiedTime=1587978859000, largestTime=0)) (kafka.log.Log)
Run Code Online (Sandbox Code Playgroud)
之前还有一份日志称该段的保留时间超出了 24 小时。在此示例中,该消息是在部署前大约 12 分钟生成的。
请注意,所有被错误删除的消息largestTime=0和被正确删除的消息都有一个有效的时间戳。从我们从文档和代码中读到的内容来看,它似乎largestTime用于计算给定段是否达到时间违规。
由于我们可以在 Kafka 的多个版本中观察到这一点,因此我们认为这可能与 Kafka 外部的任何内容有关。例如动物园管理员。
有谁知道为什么会发生这种情况?我们使用的是 Zookeeper 3.6.0。
Zookeeper 和 Kafka 沟通良好并且运行良好。
不知道为什么模式注册表和 Kafka 休息无法启动。
下面是 docker-compose 文件。
这是架构和其余 docker-compose 文件。这个泊坞窗上的错误
[main] ERROR io.confluent.admin.utils.cli.KafkaReadyCommand - Error while running kafka-ready.
java.lang.RuntimeException: No endpoints found for security protocol [PLAINTEXT]. Endpoints found in ZK [{EXTERNAL=localhost:9092, INTERNAL=kafka:29092}]
at io.confluent.admin.utils.cli.KafkaReadyCommand.main(KafkaReadyCommand.java:143)
[main] INFO org.apache.zookeeper.ZooKeeper - Session: 0x1003f4a8fa10006 closed
[main] ERROR io.confluent.admin.utils.cli.KafkaReadyCommand - Error while running kafka-ready.
java.lang.RuntimeException: No endpoints found for security protocol [PLAINTEXT]. Endpoints found in ZK [{EXTERNAL=localhost:9092, INTERNAL=kafka:29092}]
at io.confluent.admin.utils.cli.KafkaReadyCommand.main(KafkaReadyCommand.java:143)
Run Code Online (Sandbox Code Playgroud)
码头工人组成:
schema-registry:
network_mode: pm
image: confluentinc/cp-schema-registry:5.2.1
hostname: schema-registry
container_name: schema-registry
depends_on:
- …Run Code Online (Sandbox Code Playgroud) apache-kafka docker apache-zookeeper confluent-schema-registry kafka-rest
我是zookeeper的新手,想用c语言学习zookeeper。
我安装zookeeper-client/zookeeper-client-c( release-3.6.2 )按照以下步骤进行。自述文件。
运行./configure时出现一些问题。列出如下。
为什么会出现这个问题呢?怎么解决呢?有人可以给一些建议吗?
cong@pc:~/Program/zookeeper-release-3.6.2/zookeeper-client/zookeeper-client-c$ ./configure
checking for doxygen... no
checking for perl... /usr/bin/perl
checking for dot... no
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
.....
.....
configure: building with SSL support
checking for ./generated/zookeeper.jute.c... no
configure: error: jute files are missing! Please run "ant compile_jute" while in the zookeeper top level directory.
cong@pc:~/Program/zookeeper-release-3.6.2/zookeeper-client/zookeeper-client-c$ cd ../../
cong@pc:~/Program/zookeeper-release-3.6.2$ ant compile_jute …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Azure Kubernetes 服务中将 Zookeeper 作为集群运行。所有实例都以myid:1开头,不确定我需要更改什么配置。任何帮助表示赞赏。
这是我的配置文件,
apiVersion: v1
kind: Service
metadata:
name: zk-hs
labels:
app: zk
spec:
ports:
- port: 2888
name: server
- port: 3888
name: leader-election
clusterIP: None
selector:
app: zk
---
apiVersion: v1
kind: Service
metadata:
name: zk-cs
labels:
app: zk
spec:
ports:
- port: 2181
name: client
selector:
app: zk
---
apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
name: zk-pdb
spec:
selector:
matchLabels:
app: zk
maxUnavailable: 1
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: zookeeper-sc …Run Code Online (Sandbox Code Playgroud) 我想安装 Apache Kafka,但一直在安装 Zookeeper
我提取了所有文件并创建了环境变量,现在它在“Zookeeper 审计被禁用”后停止工作。

现在通过这些链接后,
我更新了这两个文件(skServer.cmd 和 conf/zoo.cfg)。在 skServer.cmd 文件中添加一行“-Dzookeeper.audit.enable=true”,在conf/zoo.cfg 中添加“audit.enable=true”。
现在输出已更改为“Zookeeper 审核已启用”。但它仍然没有做任何事情并像以前一样停在那里。
即使尝试一次更改一个文件,但输出相同,但仍然停止工作。
谁能帮助我理解问题并提供解决方案?太感谢了。
浏览 Google 的Chubby Paper,
与锁服务一样,共识服务允许客户端即使只有一个活动客户端进程也能安全地取得进展;类似的技术已被用来减少拜占庭容错所需的状态机数量[24]。然而,假设共识服务不专门用于提供锁(这将其简化为锁服务),这种方法无法解决上述任何其他问题
他们提到 Chubby 不是共识服务,而是锁定服务,以及共识服务如何用于在节点对等点之间达成共识。
根据我的理解,我认为像 Chubby 和 Zookeeper 这样的服务用于将分布式应用程序问题(例如领导者选举、集群管理、共享资源访问)卸载到不同的应用程序(chubby/zookeeper),并且这些是基于锁的服务。在如何达成共识方面对文件/znode 进行锁定。
什么是共识服务?它们与锁定服务有何不同?
什么时候会使用它们中的任何一个?
根据文件
CuratorFramework实例是完全线程安全的.您应该在应用程序中为每个ZooKeeper集群共享一个CuratorFramework.
它还声明应该在执行任何其他操作之前调用方法start.是应该在每次操作之前调用此方法,还是在初始化后调用一次就够了?
我正在使用Zookeeper配置SolrCloud,但我很难在ZK上加载配置.
我的步骤:
/bin/solr start -c -z <ip1>:2181,<ip2>:2181,<ip3>:2181 -noprompt./bin/zkCli.sh -zkhost <ip1>:2181,<ip2>:2181,<ip3>:2181 -cmd upconfig -confname config1 -confdir /folder/with/schema.xml它来自solr standalone)http://<solr_ip>:8983/solr/admin/collections?action=CREATE&name=collection_test&numShards=2&replicationFactor=2&maxShardsPerNode=2./bin/zkCli.sh -zkhost 127.0.0.1:2181 -cmd linkconfig -collection collection_test -confname config1此时我应该看到配置已加载但没有任何反应.
apache-zookeeper ×10
apache-kafka ×4
docker ×2
java ×2
azure ×1
cmd ×1
installation ×1
kafka-rest ×1
kubernetes ×1
solr ×1
solrcloud ×1