synchronization - Zookeeper 是否具有进程同步功能,还是仅用于控制进程?

标签 synchronization redis ipc rabbitmq apache-zookeeper

我的意思是 zookeeper 是否提供任何通用的同步机制 IPC(例如共享区域),或者这是一个应用程序设计的问题,应该用例如ZeroMQ、RabbitMQ、Redis?

最佳答案

“Zookeeper 是一种高度可配置、高度可用的协调服务。”来自 Hadoop 的书,因为 Hadoop 是用 Zookeeper 构建的。将它与 JMS 消息传递 (MQ) 进行比较——在 Zookeeper 中,节点必须相互了解,它们准备好进行协调;我猜可以将队列与 Znodes 进行比较......对于 Zookeeper,有两种类型:永久性的,它将在节点关闭并跨集群后持续存在,以及临时性的;它不会持续存在,但仍然可以在 zookeeper 集群中看到。比较很难——我猜这取决于它需要如何使用。我可能会将 MQ 用于远程消息传递,而 Zookeeper 将更多地用于协调(饲养动物园)而不是用于远程消息传递。人们可能会想到耦合以及耦合的紧密程度或松散程度。

在一个非常简单的用例中,所有节点都在运行 Zookeeper 并且相互了解;一个节点向 Zookeeper 写了一些东西,他们都看到了。 Zookeeper 有可以与事件进行比较的 watch 。因此,如果出现新的 znode 或节点上的数据发生变化,则可以触发程序或服务来执行某些操作。

zkCli.sh(在 zookeeper 的 bin 目录中)之后启动一个进入 zookeepr 的界面,可以执行“ls”,然后查看根据“znodes”编写的内容。因此,例如:'ls/Systems' 可能会根据其用途显示一堆节点,例如 system1、system2、system3。 ...系统。这些可能是已注册的系统,即:它们有一项服务可以注册它们在其上运行。执行 get/Systems/system1 获取其数据,这些数据可能是系统上的信息,例如内存或其工作内容。

还有更多希望对您有所帮助。

关于synchronization - Zookeeper 是否具有进程同步功能,还是仅用于控制进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19575236/

相关文章:

json - Redis Lua 区分空数组和对象

redis - 在 Redis 中,如何订阅所有新键值?

node.js - 在 Windows 中发送 SIGUSR1 IPC

Javascript - 测量 FPS 并将其与事件同步

timeout - jedis pubsub 和超时 : how to listen infinitely as subscriber?

c++ - boost::interprocess_mutex 与进程本地 boost::mutex

typescript - 从单个IPC调用获取多个IPC回调

python - uwsgi worker 之间的沟通

c# - 在 C# 中是否有保证 FIFO 顺序的同步类?

android - 如何将 Android 手机上的 SQLite 数据库与服务器上的 MySQL 数据库同步?