Всем привет. Изучаю так сказать сейчас activemq, и понадобилось создать кластер балансировки нагрузки из четырех серверов, в инете статей мало, нашел вроде бы на сайте несколько вариантов, но не много не понимаю.
Например вот этот кластер
http://jser.blogspot.com/2014/04/activemq-masterslave-and-broker.html (трафик)
Что значит тот клиентский url? куда его вписывать? Это слейвы что ли? Или клиентское приложение и в него пишется данная строка?
Или может кто-то уже строил такое может поделитесь настройками. Спасибо :)
ACTIVEMQ кластер балансировки нагрузки
Что значит тот клиентский url?
Я так понимаю это должно волновать тех, кто стягивает сообщения с AMQ. Т.е. в приложении они должны указать не только localhost:port, а все 4 AMQ.
Да вот тоже так думаю, и читал что-то подобное на забугорных форумах., но не был уверен. Хотя там в других темах про кластер, есть пример клиента где описано это, но клиент похож на обычный актив хмл файл
самый простой подход в балансировке, когда доступ идет по hostname:port это dns round robin. создаем A запись в местном днс, с одним и тем же fqdn для 4ех разных айпи.
мне пока что такие шаманские способы не известны... :(
Бегло прочел про данный тип балансировки, вроде как не сложная организация, как AMQ в таком случае настраивается? Просто как network of brokers?
AMQ в таком случае настраивается?
AMQ уже не надо настраивать. По инструкции ты выше сделал уже балансировщик.
Теперь дело за DNS. Погугли на тему, что написал dyasny. Если это сделаешь, то клиентское приложение и не заметит что у него для работы 2 сервера. Правда вот не знаю что с портами делать.
Настроил как в статье, вместо клиента попробовал еще один инстанс сделать с ссылкой failover, с ней кластер при падении переключается на другую ноду, а без нее нет. Вот думаю правильно или нет)
Тоже по статье сделала, но что-то не выходит..
Не знаю, с портами запара, я сделал transport порты которые openwire-- 0.0.0.0:61617, 0.0.0.0:61618,0.0.0.0:61619,0.0.0.0:61620,
и networkconnector написал айпишники двух машин с этими портами, то есть 10.0.0.1:61617, 10.0.0.1:61618, а для второй машины 10.0.0.2:61619, 10.0.0.2:61620
и в выводе пишет что все соединения HAS BEEN ESTABLISHED.
Всем привет. Изучаю так сказать сейчас activemq, и понадобилось создать кластер балансировки нагрузки из четырех серверов, в инете статей мало, нашел вроде бы на сайте несколько вариантов, но не много не понимаю.
Например вот этот кластер
http://jser.blogspot.com/2014/04/activemq-masterslave-and-broker.html (трафик)
Что значит тот клиентский url? куда его вписывать? Это слейвы что ли? Или клиентское приложение и в него пишется данная строка?
Или может кто-то уже строил такое может поделитесь настройками. Спасибо :)
Про клиенткий url, вам правильно сказали, это url который прописывается на стороне клиента. В целом в статье описывается система устойчивая к сбоям, где серверы activeMQ страхуют друг друга, для балансировки такая схема не совсем подходит.
Кластер балансировки нагрузки слишком общее название, непонятно что вы хотите сделать. Можно поставить 4 инстанса ActiveMQ в networkConnection прописать связь каждый с каждым. Логику обработки (читай клиента), натравить на каждый отдельный инстанс, таким образом клиенты не будет знать о существовании друг друга.
При этом записывая сообщения в любой из инстансов, сообщения будут по мере нагрузки расползаться по клиентам.
Если вы хотите еще и устойчивости, при падении инстансов то тогда объединять их в пары (master-slave), это уже 8 инстансов, и у клиентов добавить опцию failover, чтобы в случае чего переключаться.
Спасибо за разъяснение. Там на сайте есть эта схема из 8 инстансов. Дык если я добавляю в один из инстансов строку клиента которая с failover, она и работает как переключатель отказоустойчивости. Упал один мастер она моментально переключила я даже не заметил. Или это не правильная работа?
Это что же за приложение используете, если у вас такая нагрузка на amq? На моей памяти хватало одного сервера, что бы обслуживать огромный поток от 150 - 200 пользователей постоянно что то делающих.
Там на сайте есть эта схема из 8 инстансов
Тут мне вообще не понятно. Будите выделять 8 серверов под AMQ? Или на сервер по парочке? (они кстате отлично уживаются друг с другом. По крайней мере 5.7 и 5.9 не вызывали проблем)
Нет просто говорю что тоже существует статья по конфигурации которую вы описали.
Тут мне вообще не понятно. Будите выделять 8 серверов под AMQ? Или на сервер по парочке? (они кстате отлично уживаются друг с другом. По крайней мере 5.7 и 5.9 не вызывали проблем)
а что тут такого, если клиентов для очереди сотни или тысячи?
а что тут такого, если клиентов для очереди сотни или тысячи?
Да ничего. Просто если это так, то выше описанное должно было уже работать. Или они на перспективу делают, расчитывая на большие нагрузки.
Спасибо за разъяснение. Там на сайте есть эта схема из 8 инстансов. Дык если я добавляю в один из инстансов строку клиента которая с failover, она и работает как переключатель отказоустойчивости. Упал один мастер она моментально переключила я даже не заметил. Или это не правильная работа?
Балансировку нагрузки в общем случае можно вообще реализовать на 1 инстансе AMQ. Просто подключаетесь к нему с разных машин, и балансировка будет работать из коробки.
Да уж способов смотрю можно сказать миллион) Мне вот непонятно, т.к. это балансировка нагрузки, я тестю через Jmeter, появляется на первом инстансе QUEUE, начинают идти сообщения, а на других просто создалась QUEUE с таким же именем и все, должны же сообщения распределяться на все ноды одновременно? Или нет?
Да уж способов смотрю можно сказать миллион) Мне вот непонятно, т.к. это балансировка нагрузки, я тестю через Jmeter, появляется на первом инстансе QUEUE, начинают идти сообщения, а на других просто создалась QUEUE с таким же именем и все, должны же сообщения распределяться на все ноды одновременно? Или нет?
Все правильно работает. Подключите к каждому инстансу по 1-му клиенту, тогда 2-й клиент несмотря на то что подключен ко второму инстансу будет получать сообщения c первого инстанса, сам того не замечая. При этом если клиент подключеный к первому инстансу справляется с нагрузкой, то он и будет получать больше всего сообщений. Это у же будет решать сам инстанс AMQ. В общем случае, если в очереди сообщения будут накапливаться(что сигнализирует что клиент не справляется), то инстанс AMQ будет делиться со вторым.
Кажется что-то понял. Подключив к каждому инстансу по consumer-y, послал 100 сообщений, 61617 и 61619, обработали их в два потока, вот только не пойму для чего другие два инстанса? 61618 и 61620, они пустые. Два инстанса обрабатывают сообщения их балансируя между собой, а две остальных получается служат как резервные на случай падения одного из инстансов? Или Снова мне ничего не понятно)