问题标签 [apache-zookeeper]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - 生成 int32 和 int64 大小的唯一主 ID
我正在使用 Java 和分布式 noSQL DB(Cassandra) 开发一个社交网络应用程序。 我需要为应用程序上的新用户和帖子分别生成 32 位和 64 位大小的 ID。
由于构建在分布式平台之上,我们生成 ids/keys 的问题变得有些复杂。尽管已经出现了诸如 Zookeeper/ 或 twitter 的雪花之类的解决方案,它们一直在努力减轻这种痛苦,但这些解决方案似乎并不容易使用。
从顶层的角度看这些解决方案后,我觉得是最简单、最成熟的解决方案。像 flickr 的票务服务器那样使用 MySQL 数据库是我的首选,因为它似乎是最简单的解决方案。
http://code.flickr.com/blog/2010/02/08/ticket-servers-distributed-unique-primary-keys-on-the-cheap/
我知道这将围绕分布式系统创建 SPOF.. 但我仍然相信这将是我早期最简单的解决方案(当我在资本和人力方面的资源较少时)。当我的应用程序增长时,我相信切换不会很困难,因为它们不需要传输大量数据。所以对于我的应用程序的婴儿期,我猜 MySQL 可以以最好和最简单的方式为我服务来生成 Id。
这种选择的主要因素:-
我正在考虑最初使用单个 MySQL 服务器,然后切换到类似两个服务器作为 flickr 的解决方案,以删除 SPOF。
当我考虑切换到 Zookeeper 或雪花等替代解决方案时,有人能指出以后可能会出现什么问题吗?或者当前提议的方法可能有哪些缺点?
非常感谢您的时间!
distributed-computing - 如何使用 ZooKeeper 设计任务分发
我打算编写一个具有分布式工作进程的应用程序。其中之一将是领导者,它将任务分配给其他进程。设计领导者选举过程非常简单:每个过程都尝试在同一路径中创建一个临时节点。谁成功,谁就成为领导者。
现在,我的问题是如何设计平均分配任务的过程?有什么食谱吗?
我将详细说明环境设置:
假设有 10 台 worker 机器,每台运行一个进程,其中一台成为 leader。任务在队列中提交,Leader 接受它们并分配给工作人员。每当提交任务时,工作进程都会收到通知。
c++ - 无论如何,是否允许一个应用程序线程在 GDB 中的断点处继续?
在使用 Apache Zookeeper C 运行时库调试应用程序时,我在使用 GDB 中的默认全停止模式设置断点时遇到了问题。由于 Zookeeper 线程无法运行,服务器将使会话超时,从而删除您可能创建的任何临时 znode。使用不间断模式我可以防止这种情况发生,但是我失去了能够检查任何非 Zookeeper 线程状态的便利。
GDB 中有没有办法指定一个(或多个)线程在断点被击中时将继续在应用程序中运行,但其他线程将停止运行?这样我就可以检查我关心的线程的状态,而忽略那些我想在后台运行的线程的状态。
编辑:这本质上是不停止 gdb 中的所有线程的副本。使用不间断模式的后台命令的解决方案基本上解决了我的问题,因为我可以随时停止线程并异步重新启动它们,所以也许我们应该关闭这个。
hbase - HBase Zookeeper 关闭连接
我正在尝试制作一个在 Apache Tomcat 上运行的简单 Web 服务,并且只有一个操作可以进行 HBase 表扫描。这是我获取配置的方式:
问题是连接Zookeeper
保持打开状态,当我达到一定数量的连接时,Zookeeper
开始丢弃。
Zookeeper
扫描后如何关闭连接?
谢谢
hadoop - 动物园管理员 getZookeeperClusterKey 出现 NullPointerException
连接到 HBase 时,会出现以下消息:
配置好像有问题。我没有使用 xml 文件进行配置,而是在我的代码中执行此操作。作为记录,这是我的代码的配置部分:
我正在使用 Spring DM 从 OSGi 应用程序运行它。
编辑:
第 956 行的源代码如下:
显然,不会读取 quorum 的值。然而,在常规的非 OSGi 应用程序中使用相同的代码不是问题。
编辑:使用不同的方式提供配置似乎有效果。我现在收到以下错误:
马上查源头。
synchronization - Apache ZooKeeper:写入如何工作
Apache ZooKeeper 是一种用于小对象的高可用数据存储。ZooKeeper 集群由一些节点组成,这些节点都将整个数据集保存在它们的内存中。该数据集被称为“始终一致”,因此每个节点每次都有相同的数据。
根据文档和博客文章,集群中的每个节点都可以回答读取并接受写入。
- 读取总是由节点在本地回答,因此不涉及与集群的通信。
- 写入被转发到指定的“Leader”节点,该节点将写入请求转发给所有节点并等待它们的回复。如果至少有一半的节点回答,则认为写入成功。
问题:为什么leader等待一半的节点回复就够了?如果有人连接到没有收到更新的节点之一,他会得到一个过时的结果(仅本地读取到本地值)。
java - ZooKeeper:会话过期时如何正确重新连接?
ZooKeeper 常见问题解答告诉当状态变为 SESSION_EXPIRED 时必须重新创建 ZooKeeper 对象。
有没有正确进行这种重新连接的代码示例?Zookeeper 发行版中的 Recipes 文件夹包含两个代码示例,它们都假定会话永不过期。这是幼稚的,因为在服务器与 ZooKeeper 集群断开连接 5 分钟后,重新建立连接后队列和锁都不会再次工作。
locking - ZooKeeper 的替代品?(集群协调服务)
ZooKeeper是面向数据中心的高可用协调服务。它起源于 Hadoop 项目。可以在它之上实现锁定、故障转移、领导者选举、组成员资格和其他协调问题。ZooKeeper 有什么替代品吗?(当然是免费软件)
sharding - Apache Zookeeper 如何用于分片?
我们正在考虑集中 cfg 信息,看起来 zookeeper 是一个不错的选择。我们也对分片感兴趣并且有一个方案。在 poweredBy[1] 中看到 Rackspace 和 Yahoo 正在使用 Zookeeper 进行分片。将不胜感激指针和细节。
[1] https://cwiki.apache.org/confluence/display/ZOOKEEPER/PoweredBy
java - 在 ZooKeeper 中,我可以在不存在的 znode 上使用 async getData() 吗?
即使我调用了 exists() 方法,我也应该检查 Code.NoNode。
因此我可以直接使用 getData() 方法吗?
我注意到如果节点不存在,同步 getData() 将抛出异常。因此,如果我在不存在的 znode 上调用异步 getData,我会在性能或其他方面受到任何惩罚吗?
谢谢!