ActiveMQ-сервер
MQ (Message Queue)-сервер необходим для передачи сообщений между различными приложениями - компонентами системы. Он также важен для работы, как и сервер базы данных. В качестве MQ-сервера используется Apache ActiveMQ. Загрузите настроенную версию с нашего FTP ftp://ftp.bgbilling.ru/pub/bgbilling/. Загружать версию из каталога linux или win в зависимости от вашей ОС.
Главный конфигурационный файл ActiveMQ, использующийся по умолчанию, находится в conf/activemq.xml. Логины и пароли расположены в файле credentials.properties.
Обратите внимание на закомментированный фрагмент, в этом отрывке настраивается сеть серверов MQ - можно запустить несколько MQ-серверов, объединенных в одну сеть. При этом указывается имя сети (default).
<!--
<
networkConnectors
>
<
networkConnector
uri
=
"multicast://default"
dynamicOnly
=
"true"
networkTTL
=
"3"
prefetchSize
=
"1"
decreaseNetworkConsumerPriority
=
"true"
/>
</
networkConnectors
>
-->
В ветке plugins указан параметр, при котором все сообщения, у которых истек timeToLive будут удаляться (по умолчанию они переносятся в очередь ActiveMQ.DLQ):
<!-- drop messages that have been sent to the DLQ -->
<
discardingDLQBrokerPlugin
dropAll
=
"true"
/>
Ниже описывается использование системных ресурсов для NON_PERSISTENT, PERSISTENT-сообщений и временных очередей. При превышении данных ресурсов отправка сообщений будет замедлена:
<
systemUsage
>
<
systemUsage
>
<
memoryUsage
>
<
memoryUsage
limit
=
"128 mb"
/>
</
memoryUsage
>
<
storeUsage
>
<
storeUsage
limit
=
"10 gb"
/>
</
storeUsage
>
<
tempUsage
>
<
tempUsage
limit
=
"1 gb"
/>
</
tempUsage
>
</
systemUsage
>
</
systemUsage
>
В этом отрывке указывается тип коннектора для работы с сервером, интерфейс и порт:
<
transportConnectors
>
<
transportConnector
name
=
"nio"
uri
=
"nio://127.0.0.1:61616"
discoveryUri
=
"multicast://default"
/>
</
transportConnectors
>
К этому порту будут подключаться к серверу MQ приложения биллинговой системы. Если все компоненты биллинга установлены на одном сервере, то можно оставить значение uri=nio://127.0.0.1:61616. Иначе нужно указать ip интерфейса, на который будут идти подключения или установить uri=nio://0.0.0.0:61616, чтобы порт был открыт на всех интерфейсах.
Параметры подключения к серверу ActiveMQ указываются в каждом серверном приложении в .properties файле, например в data/data.properties для сервера биллинга.
mq.url=failover:(nio://
127
.
0
.
0
.
1
:
61616
)
mq.user=bill
mq.pswd=bgbilling
Для локальной машины mq.url=failover:(nio://127.0.0.1:61616), для нескольких серверов (должна быть настроена поддержка сети серверов в каждом из MQ-серверов):
mq.url=failover:(nio://mq1.core.provider.org:
61616
,nio://mq1.core.provider.org:
61616
)
В последнем случае подключение будет к случайному из списка, если подключение невозможно - идет попытка подключения к следующему указанному серверу MQ, и так пока не установится подключение. Если второй сервер играет роль "запасного" - например, он установлен на слабой машине и должен принять работу только, если прервется работа первого сервера, то можно указать, чтобы подключение не устанавливалось к случайному, а попытки шли в указанном порядке:
mq.url=failover:(nio://mq1.core.provider.org:
61616
,nio://mq1.core.provider.org:
61616
)?randomize=
false
Linux
Убедитесь, что имя сервера с ActiveMQ указано в файле /etc/hosts. Имя сервера можно получить командой uname -n.
Пример установки ActiveMQ версии 5.4.2 в каталог /opt.
1) Перенесите каталог с ActiveMQ в /opt (/opt/apache-activemq-5.4.2);
2) Создайте символическую ссылку
ln -s /opt/apache-activemq-
5
.
4
.
2
/bin/linux-x86-
32
/opt/apache-activemq-
5
.
4
.
2
/bin/linux
либо, если у вас 64х разрядная ОС
ln -s /opt/apache-activemq-
5
.
4
.
2
/bin/linux-x86-
64
/opt/apache-activemq-
5
.
4
.
2
/bin/linux
3) Укажите в скрипте запуска /opt/apache-activemq-5.4.2/bin/linux/wrapper.conf переменную wrapper.java.command. Например:
# Java Application
wrapper.java.command=/opt/java/jdk/bin/java
4) Создайте ссылку на службу.
ln -s /opt/apache-activemq-
5
.
4
.
2
/bin/linux/activemq /etc/init.d/activemq
Настройте автоматический запуск службы и запустите её. При работе на одной машине с приложениями биллинга служба должна стартовать раньше всех приложений биллинга (регулируется префиксом ссылки).
Логи выполнения хранятся в data/activemq.log и data/wrapper.log, по ним можно проследить безаварийный старт сервиса.
Windows
Настройте системную переменную ACTIVEMQ_HOME, указывающую на каталог установки ActiveMQ.
Перейдите в директорию ACTIVEMQ_HOME/bin/win32. Выполните InstallService.bat. После выполнения в списке служб Windows должна появится служба ActiveMQ.
Логи выполнения хранятся в data/activemq.log и data/wrapper.log, по ним можно проследить безаварийный старт сервиса.