Я только начинаю работать с Кассандрой, и у меня есть несколько вопросов. Я собираюсь развернуть кластер из 4 узлов на AWS в соответствии с документацией DataStax (http://www.datastax.com/docs/datastax_enterprise3.1/install/install_dse_ami).
После того, как у меня будет этот четырехузловой кластер, я буду создавать простой сервер LAMP, который (надеюсь) будет выполнять запросы к кластеру. Я буду использовать Cassandra-PDO для связи (http://code.google.com/a/apache-extras.org/p/cassandra-pdo/). В итоге получается 5 серверов.
Например:
192.168.0.1 - Кассандра1
192.168.0.2 - Кассандра2
192.168.0.3 - Кассандра3
192.168.0.4 - Кассандра4
192.168.0.5 - Стек LAMP
Как мне сбалансировать все мои запросы от сервера LAMP к моему кластеру Cassandra? В примере с CPDO они упоминают следующее:
$dsn = "cassandra:host=192.168.0.1;port=9160,host=192.168.0.2,port=9160";
Однако что мне делать, если я не знаю IP-адреса? Что будет, если я добавлю новые узлы? Старые узлы выходят из строя и т. Д.? Вам нужно как-то самостоятельно балансировать нагрузку на запросы?
Мы будем очень благодарны за любые советы по вышеуказанному!
Ура
Этот pdo проверяет первый доступный узел в списке. Если кажется, что первый узел не работает, он использует второй ... Вы должны самостоятельно балансировать нагрузку (в нашем случае мы перетасовываем список узлов). Но будьте осторожны с этим. Узел, к которому вы присоединяетесь, не обязательно является узлом, который обрабатывает строку, которую вы хотите читать / писать. Запрос обрабатывает просто координатор. Если вы добавляете новые узлы, вам нужно добавить его ip, если вы хотите использовать его в качестве возможного координатора, но это не влияет на работу самого кластера.