2013-08-02 3 views
9

Так в чем же идея кластера?Кластер Mysql для манекенов

  1. У вас есть несколько машин с той же копией базы данных, где вы распространяете чтение/запись? Это верно?

  2. Как эта идея работает? Когда я делаю запрос выбора, кластер анализирует, какой сервер имеет меньше операций чтения/записи и указывает мой запрос на этот сервер?

  3. Когда вы должны начать использовать кластер, я знаю, что это сложный вопрос, но кто-то может дать мне пример, например, 1 миллион посещений и 100-миллионную базу данных.

ответ

9

1) Correct. На каждом узле данных не хранится полная копия данных кластера, но каждый бит данных хранится как минимум на двух узлах.

2) Essentially correct. MySQL Cluster поддерживает распределенные транзакции.

3) Когда вертикальное масштабирование не возможно больше, и репликация становится непрактичным :)


Как и было обещано, некоторые рекомендуемые показания:

+0

Спасибо, что вы точно скажете в пункте 3: 'и репликация становится непрактичной'? Можете ли вы привести мне пример? – Uffo

+0

Вы спрашиваете, когда репликация становится непрактичной или вообще о репликации? Горизонтальное масштабирование может быть достигнуто посредством, например, [круговой репликации] (http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-replication-multi-master.html) за балансировщиком нагрузки. Но когда вы начинаете внедрять эти вещи, вы должны спросить себя о внедрении кластера. – RandomSeed

+0

[Этот ответ] (http://stackoverflow.com/a/5326403/1446005) также может вас заинтересовать. – RandomSeed

2

1-> Ваша первая точка верна в некотором роде. Но я думаю, что если несколько машин будут использовать одни и те же данные, это будет репликация вместо кластеризации. В кластеризации данные делятся между различными машинами, и существует горизонтальное разбиение на разделы, что разделение данных основано на строках, записи делятся на некоторые алгоритмы между этими машинами.

деление данных выполняется таким образом, что каждая запись получит уникальный ключ так же, как и в случае пары ключ-значение, и каждая машина также имеет уникальную связанную с машиной связь, которая используется для определения пары ключевых значений пойдет на какую машину.

мы называем каждую машину кластером, и каждый кластер состоит из отдельного mysql-сервера, отдельных данных и диспетчера кластеров. Также существует обмен данными между всеми узлами кластера, чтобы все данные были доступны каждому узла в любое время.

извлечение данных осуществляется с помощью memcached устройств/серверов для быстрого извлечения и также существует сервер репликации для конкретного кластера для сохранения данных.

2-> да, есть возможность, потому что есть общий доступ ко всем данным среди всех узлов кластера.а также вы можете использовать балансировщик нагрузки для балансировки нагрузки. Но идея балансировки нагрузки является обычной, поскольку они используются большинством серверов. но если вы пытаетесь просто узнать свои знания, тогда нет необходимости, потому что вы не заметите тип нагрузки, который создает требование балансировки нагрузки, который сам кластерный менеджер может сделать.

3-> RandomSeed является правильным. вы чувствуете потребность в кластере, когда ваша репликация становится непрактичной, означает, что если вы используете главный сервер для записи и ведомого для чтения, то в какое-то время, когда трафик становится огромным, так что сервер не сможет работать плавно, тогда вы будете почувствовать необходимость кластеризации. просто ускорить весь процесс. Это не единственный случай, это всего лишь один из сценариев, это всего лишь случай.

Надеюсь, это полезно для вас!

+0

Спасибо, сэр за то время, отличная информация! – Uffo

Смежные вопросы