C) Установка и настройка программного обеспечения.
В качестве серверов мы использовали сервера Ubuntu server 12.04. Процесс установки операционной системы, а также процесс установки и настройки RabbitMQ описан ниже. Скачиваем образ диска Ubuntu 12.04 Server с официальной страницы релиза и записываем его одной из программ для записи дисков на CD-диск.
Рисунок 1 – Выбор языка
Рисунок 2 – Главное меню
Выбираем свое местонахождение:
Рисунок 4 – Окно автоматического выбора раскладки
Рисунок 5 – Окно выбора языка
Несколько секунда на загрузку необходимых модулей и компонентов:
Установщик Ubuntu 12.04 определит сетевое оборудование:
Рисунок 7 – Окно определения сетевого оборудования
Когда сервер будет успешно перегружен, вы сможете войти в систему, используя свои логин и пароль:
Рисунок 8 – Главная консоль системы
Для версии клиента rabbitmq-с 0-9-1 необходим сервер версии 2.5.В Ubuntu 12.04 можно воспользоваться командой
$ aptitude install rabbitmq-server
Эти операции должны быть повторены на всех машинах. Конфигурация работы сервера RabbitMQ располагается в трех местах, это переменные окружения (задаются порты и расположения и имена файлов), файлы конфигурации (настройки доступа, кластеры, плагины), и настройки задаваемые в рантайме (политики, настройки производительности). Создаем свой файл конфигурации, называем его rabbitmq.config, и заполняем простыми настройками:
%% Sample [ {rabbit, [ {tcp_listeners, [5672]}, {log_levels, [{connection, error}]}, {default_vhost, <<"/">>}, {default_user, <<"username">>}, {default_pass, <<"password">>}, {default_permissions, [<<".*">>, <<".*">>, <<".*">>]}, {heartbeat, 60}, {frame_max, 1048576} ]} ].
Комментарии в настройках предваряются двойным символом процента %%.
Все команды выполняемые в командной строке, выполняются в каталоге инструментов установленного RabbitMQ сервера: RabbitMQ\RabbitMQ Server\rabbitmq_server-3.2.1\sbin
В первую очередь, до создания кластера нам нужно синхронизировать куки RabbitMQ узлов, куки в RabbitMQ это сгенерированный при установке хэш, который используется как идентификатор узла, т.к. кластер выступает как единый узел, на каждом сервере куки должны быть идентичны.
rabbitmqctl stop_app rabbitmqctl join_cluster --ram rabbit@master rabbitmqctl start_app
Либо указанием в файле конфигурации:
{cluster_nodes, {["rabbit@master", "rabbit@host01"], disc}}
Данную процедуру требуется выполнить только один раз, при добавлении нового узла, в дальнейшем узел будет подключаться к кластеру автоматически (например, после перезагрузки сервера на котором поднят узел). Кластер создан, но для полноценного использования не годится, на текущем этапе очереди и сообщения на каждом узле живут отдельно, никакой синхронизации не производится, а значит если два клиента подключаться к кластеру к разным узлам, то когда один из них опубликует сообщения в очередь, второй ничего об это не узнает. Также при падении одного из узлов, все сообщения которые были на нем будут потеряны. Для задания политики синхронизации заходим в инструменты и выполняем в следующую команду:
rabbitmqctl set_policy HA ".*" "{""ha-mode"": ""all""}"
Теперь все очереди и сообщения в них будут синхронизироваться. При публикации сообщения, оно становится доступным для клиентов только после копирования на все узлы кластера.
|