Внешний компонент Tigase в виде одной банки

Я реализовал компонент tigase с определенной функциональностью и теперь пытаюсь понять, как использовать его в качестве внешнего компонента. На данный момент, похоже, мне нужно настроить отдельный сервер tigase с моим компонентом на нем, а затем настроить основной сервер tigase, чтобы он ссылался на этот отдельный сервер как на внешний компонент.

Что я хотел бы сделать, так это собрать этот внешний tigase в единую банку, чтобы иметь возможность запускать его с помощью одной строчной команды без предварительной установки tigase.

Вопрос возможно ли это вообще?

Похоже, что для запуска tigase требуется база данных, а руководство по администрированию рекомендует использовать общую базу данных основного сервера для внешних компонентов. Я не уверен, что tigase может запускаться без базы данных, что затрудняет запуск с помощью простой команды java -jar.


person user1455836    schedule 11.04.2019    source источник


Ответы (2)


На данный момент, похоже, мне нужно настроить отдельный сервер tigase с моим компонентом на нем, а затем настроить основной сервер tigase, чтобы он ссылался на этот отдельный сервер как на внешний компонент.

Это верно. Сервер Tigase XMPP использует XEP-0114: протокол компонентов Jabber и XEP-0225: Component Connections. Подробнее о том, как настроить его в Tigase.

Что я хотел бы сделать, так это собрать этот внешний tigase в единую банку, чтобы иметь возможность запускать его с помощью одной строчной команды без предварительной установки tigase. Вопрос возможно ли это вообще?

Вы можете создать «убер банку» — да, это возможно. Одним из возможных решений было бы создать ваш компонент как отдельный проект maven, настроить tigase-server как зависимость, а затем воспользоваться преимуществами jar-with-dependencies Подключаемый модуль сборки Apache Maven. Он вытянет все необходимые настроенные зависимости и поместит их в один файл jar. Обратите внимание, однако, что, например, драйверы базы данных не будут включены.

Похоже, что для запуска tigase требуется база данных, а руководство по администрированию рекомендует использовать общую базу данных основного сервера для внешних компонентов. Я не уверен, что tigase может запускаться без базы данных, что затрудняет запуск с помощью простой команды java -jar.

База данных действительно требуется - это дает преимущество в том, что ваша конфигурация согласуется со многими узлами, на которых может работать ваш внешний компонент (вам нужно обновить только один раз на одном узле, и все остальные узлы обновят его автоматически), но вам не нужно использовать основную базу данных сервера. Подробнее см. в разделе Использование отдельной базы данных. . Если вы используете только один локальный экземпляр вашего внешнего компонента, вы можете создать простую базу данных derby и поместить свою конфигурацию в файл etc/externalComponentItems.

person Wojtek    schedule 11.04.2019
comment
Спасибо. Этот подход действительно работает, хотя и не очень практичен для меня из-за необходимости базы данных. - person user1455836; 15.04.2019
comment
Вы можете использовать базу данных Derby, в то время как база данных обрабатывается внутри JVM, то есть нет необходимости устанавливать дополнительное программное обеспечение или поддерживать дополнительный процесс. - person Wojtek; 15.04.2019
comment
да, но мне все равно нужно запустить на нем схему ddl. - person user1455836; 16.04.2019
comment
Правильно, но есть скрипт (scripts/tigase.sh install-schema), который сделает это за вас. - person Wojtek; 16.04.2019

Да, для работы платформы/API компонента Tigase требуется ядро ​​Tigase Server. И вы загружаете ядро ​​сервера Tigase только с помощью своего пользовательского компонента. Общая база данных между основным сервером XMPP Tigase и экземпляром компонента рекомендуется для простоты, но не является обязательной. Я думаю, что экземпляр внешнего компонента можно было бы запустить даже с фиктивным коннектором БД, если БД действительно не нужна.

person Artur Hefczyc    schedule 11.04.2019