Вопрос

В настоящее время я искал memcached как способ координации группы серверов, но наткнулся на Apache ZooKeeper по пути. Это выглядит интересно, и Yahoo использует это, так что это не должно быть плохо, но я никогда не слышал об этом раньше, поэтому я немного скептически отношусь. Кто-нибудь еще попробовал? Есть комментарии или идеи?

Это было полезно?

Решение

ZooKeeper и Memcached имеют разные цели. Вы можете использовать memcached для координации серверов, но большую часть этой работы вам придется выполнять самостоятельно. Memcached позволяет только координацию в том смысле, что он кэширует общие поиски данных, которые будут использоваться несколькими клиентами. Из прочтения документации ZooKeeper, она имеет гораздо более широкую направленность, чем эта. ZooKeeper, кажется, обеспечивает поддержку кластеризации серверов, которая отличается от кластеризации кэша, которую обеспечивает memcached.

Взгляните на Linux-журнал Брэда Фицпатрика статью о memcached, чтобы получить лучшее представление о том, что я имею в виду.

Другие советы

Чтобы узнать, на что способен Zookeper, посмотрите следующую презентацию его создателей. Он способен на гораздо большее (создание очередей, выбор главных процессов среди группы одноранговых узлов, распределенные высокопроизводительные конфигурации времени выполнения, точки сближения для отсоединенных процессов, определение того, запущены ли процессы и т. Д.).

http://zookeeper.sourceforge.net/index.sf.shtml

Чтобы ответить на ваш вопрос, если " координация " это то, что вы ищете, Zookeeper гораздо лучше ориентирован на это, чем memcached.

Zookeeper отлично подходит для координации данных между серверами. Это делает хорошую работу по упорядочению каждой транзакции и дает гарантии, что транзакции происходят в порядке. Однако при первом взломе документация отстой; это очень «высокий уровень» без достаточного количества конкретных примеров или объяснений того, как правильно обрабатывать определенные события. В одном из включенных примеров (начиная с версии 3.3.3) были свои ошибки.

Ваш код также должен быть осведомлен о событиях, управляемых событиями, и опросах. С массивно распределенной архитектурой, воздействуя на «события», вы можете непреднамеренно создать давку, которая не может быть желательной для вашей среды (эффект стада).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top