Различия
Здесь показаны различия между двумя версиями данной страницы.
Следующая версия | Предыдущая версия | ||
comet:cluster [2017/12/16 16:45] levhav создано |
comet:cluster [2019/12/18 01:58] (текущий) |
||
---|---|---|---|
Строка 11: | Строка 11: | ||
Операции выборки данных (select и show) работают синхронно. Так как должны получить данные и вернут их в ответе. | Операции выборки данных (select и show) работают синхронно. Так как должны получить данные и вернут их в ответе. | ||
- | Для включения механизма кластеризации надо добавить в конфигурационный файл параметры для подключения к серверам кластера. | + | Для включения механизма кластеризации надо добавить в конфигурационный файл параметры для подключения к серверам кластера в секцию [ws] и в секцию [cometqlproxy] |
- | В секцию [ws] и в секцию [cometqlproxy] | + | <note important>Механизм кластеризации был разработан не давно. Если обнаружатся проблемы в настройке или в работе или пробелы в документации не стесняйтесь [[https://gitter.im/CppComet/Lobby|задавать вопросы]] и [[https://github.com/CppComet/comet-server/issues|писать баг репорты.]]</note> |
+ | |||
+ | ====== Настройка секции [ws] ====== | ||
В секции [ws] есть параметр cluster он представляет из себя список параметров для подключения к другим нодам кластера. Каждое новое подключение задаётся с новой строки. Квадратные скобочки перед началом параметра указывают на то что эта строка не переопределяет предыдущее значение параметра cluster а дополняет его ещё одним элементом списка значений. | В секции [ws] есть параметр cluster он представляет из себя список параметров для подключения к другим нодам кластера. Каждое новое подключение задаётся с новой строки. Квадратные скобочки перед началом параметра указывают на то что эта строка не переопределяет предыдущее значение параметра cluster а дополняет его ещё одним элементом списка значений. | ||
Строка 22: | Строка 24: | ||
cluster = []Server=127.0.0.1,Database=CometQL_v1,Uid=root,Pwd=0000000000000000000000000000000000000000000000000000000000000000,Port=3321 | cluster = []Server=127.0.0.1,Database=CometQL_v1,Uid=root,Pwd=0000000000000000000000000000000000000000000000000000000000000000,Port=3321 | ||
</code> | </code> | ||
+ | |||
+ | В примере выше параметру cluster присвоено две строки подключения к двум другим нодам кластера. | ||
+ | Строка из себя представляет несколько параметров | ||
+ | * Server - имя хоста комет сервера | ||
+ | * Database - версия апи всегда CometQL_v1 (до тех пор пока нет версии 2 или какой бы то ни было ещё) | ||
+ | * Uid - имя пользователя обычно root | ||
+ | * Pwd - пароль для подключения | ||
+ | |||
+ | Если у нас кластер из трёх нод то в конфигурации надо указывать две соседних ноды. | ||
+ | Таким образом при поступлении данных из JavaScript API будут уведомлены другие сервера кластера. | ||
+ | |||
+ | ====== Настройка секции [cometqlproxy] ====== | ||
+ | |||
+ | Секция cometqlproxy представляет собой интерфейс для обращений через CometQL API к кластеру. | ||
+ | По своей структуре она похожа на секцию cometql | ||
+ | |||
+ | Если в не кластерном режиме все запросы от CometQL уходили в модуль cometql на тот порт который был казан в секции [cometql] то в режиме кластера вы можете активировать на одной ноде или на нескольких нодах кластера модуль cometqlproxy и направлять запросы на него (сами запросы менять не придётся) модуль cometqlproxy принимая CometQL запрос парсит его и в зависимости от запроса направляет его на одну или несколько нод кластера. Если запрос был на вставку данных (insert и set) то он будет направлен на одну из живых нод кластера. Если запрос на получение данных то данные будут извлечены либо с одной ноды либо в худшем случаи будут опрошены все живые ноды, после чего будет собран общий ответ из ответов от всех нод. | ||
+ | |||
+ | В секции cometqlproxy тоже есть параметр cluster похожий на свой аналог из секции ws за тем исключением что в нём надо перечислить все ноды кластера а не только соседей. Тоесть если ваш кластер из трёх нод то в секциях ws каждой из нод будет по две строки для подключения к другим нодам а в секции cometqlproxy будут указаны все три ноды кластера. | ||
+ | |||
+ | Так сделано потому что модуль cometqlproxy может работать на инстансе комет сервера просто в режиме проксирования запросов к другим комет серверам без поднятия на этой же ноде ещё и модулей cometql и WS | ||
+ | |||
+ | <code ini> | ||
+ | [cometqlproxy] | ||
+ | ; Clustering Functions | ||
+ | ; | ||
+ | ip = 0.0.0.0 | ||
+ | thread_num = 3 ; number of threads for receive message from cometql | ||
+ | statistics = 10 | ||
+ | port = 3301 | ||
+ | |||
+ | ; The parameters of the cluster (without spaces or anything else between the parameters, are case sensitive) | ||
+ | cluster = []Server=127.0.0.1,Database=CometQL_v1,Uid=root,Pwd=0000000000000000000000000000000000000000000000000000000000000000,Port=3301 | ||
+ | cluster = []Server=127.0.0.1,Database=CometQL_v1,Uid=root,Pwd=0000000000000000000000000000000000000000000000000000000000000000,Port=3311 | ||
+ | cluster = []Server=127.0.0.1,Database=CometQL_v1,Uid=root,Pwd=0000000000000000000000000000000000000000000000000000000000000000,Port=3321 | ||
+ | </code> |