182 lines
7.8 KiB
Markdown
182 lines
7.8 KiB
Markdown
|
# Установка фич (features)
|
|||
|
|
|||
|
### Languages
|
|||
|
|
|||
|
[English](README.md)
|
|||
|
|
|||
|
### Введение
|
|||
|
|
|||
|
Для установки фич понадобятся несколько шагов.
|
|||
|
|
|||
|
Использовать Java 8
|
|||
|
|
|||
|
### Шаг 1: Сборка проекта
|
|||
|
|
|||
|
Необходимо локально собрать корневой проект:
|
|||
|
|
|||
|
mvn install
|
|||
|
|
|||
|
#### Шаг 2: Настройка брокера, БД и менеджера артефактов.
|
|||
|
|
|||
|
При использовании докера запустите Артемис
|
|||
|
|
|||
|
sudo docker run --rm -p 8161:8161 -p 61616:61616 -e ARTEMIS_USERNAME=entaxy -e ARTEMIS_PASSWORD=entaxy --name=artemis1 -d vromero/activemq-artemis
|
|||
|
|
|||
|
И запустите постгрес
|
|||
|
|
|||
|
sudo docker run --name entaxy_db -p 5432:5432 -v /etc/timezone:/etc/timezone:ro -e POSTGRES_PASSWORD=entaxy -e POSTGRES_USER=entaxy -e POSTGRES_DB=cache -d postgres
|
|||
|
|
|||
|
или Майкрософт Сиквел
|
|||
|
|
|||
|
sudo docker run --name mssql -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=entaxy' -p 1433:1433 -d mcr.microsoft.com/mssql/server:2017-CU8-ubuntu
|
|||
|
|
|||
|
`По умолчанию в проекте используется 2 базы данных: cache и esb_entaxy,`
|
|||
|
`Названия баз данных прописаны в конфигурациях соединений с бд org.ops4j.datasource-entaxy.esb.*.cfg`
|
|||
|
|
|||
|
и осталось поднять nexus(необходимо для работы system-management)
|
|||
|
|
|||
|
sudo docker run -d -p 8081:8081 --name nexus sonatype/nexus3
|
|||
|
|
|||
|
Теперь смотрим админский пароль через команду:
|
|||
|
|
|||
|
docker exec nexus cat /nexus-data/admin.password
|
|||
|
И далее заходим в админку через браузер на http://localhost:8081/.
|
|||
|
По умолчанию для работы требуется создать пользователя entaxy/entaxy и maven репозиторий с названием entaxy.
|
|||
|
|
|||
|
На Docker Toolbox могут возникнуть ошибки из-за нехватки памяти, решается изменением выделения памяти при запуске`
|
|||
|
|
|||
|
docker run -d -p 8081:8081 --name nexus -e INSTALL4J_ADD_VM_PARAMS="-Xms2g -Xmx2g -XX:MaxDirectMemorySize=3g" sonatype/nexus3
|
|||
|
|
|||
|
#### Шаг 3: Подготовка и запуск карафа
|
|||
|
|
|||
|
Скопировать в карафовский etc следующие файлы из репозитория entaxy-framework\features\src\main\cfg\
|
|||
|
|
|||
|
jre.properties
|
|||
|
org.apache.karaf.cellar.groups.cfg
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Так же локальный нексус репозиторий необходимо добавить к стандартным репозиториям в файле org.ops4j.pax.url.mvn.cfg свойство org.ops4j.pax.url.mvn.repositories.`
|
|||
|
`Пользователь и название репозитория прописано в конфигурационном файле ru.entaxy.esb.deployer.nexus.cfg.`
|
|||
|
|
|||
|
|
|||
|
Запуск Apache Karaf 4.x или новее
|
|||
|
|
|||
|
karaf
|
|||
|
|
|||
|
Или запуск карафа с очисткой до первоначального состояния
|
|||
|
|
|||
|
karaf clean
|
|||
|
|
|||
|
## Шаг 4: Установка всех фич за один раз, используя командную строку карафа
|
|||
|
|
|||
|
shell:source <project-directory>/entaxy-framework/features/src/main/script/install.karaf
|
|||
|
|
|||
|
- После требуется проверить конфигурации соединений с бд в файлах org.ops4j.datasource-entaxy.esb.*.cfg
|
|||
|
- Проверить адрес брокера в файле ru.entaxy.esb.cfg свойство ru.entaxy.esb.jms.url
|
|||
|
- Проверить адреса брокеров для моста в файле ru.entaxy.esb.system.bridge.cfg свойства jms.url.*
|
|||
|
- Заменить файл org.apache.karaf.cellar.groups.cfg
|
|||
|
|
|||
|
#### Шаг 4a: Или можно установить фичи вручную
|
|||
|
|
|||
|
Добавить необходимые фичи
|
|||
|
|
|||
|
feature:repo-add mvn:ru.entaxy.esb/karaf-features/LATEST/xml/features
|
|||
|
feature:install liquibase-updater
|
|||
|
feature:install entaxy-esb-api
|
|||
|
|
|||
|
Установить nsi
|
|||
|
|
|||
|
feature:install nsi
|
|||
|
|
|||
|
Установить permission
|
|||
|
|
|||
|
feature:install permission
|
|||
|
|
|||
|
Установить реестр систем
|
|||
|
|
|||
|
feature:install system-registry
|
|||
|
|
|||
|
Установить тестовый профиль
|
|||
|
|
|||
|
install -s blueprint:mvn:ru.entaxy.esb.integration.esb.test.profiles/test-profiles/1.0-SNAPSHOT/xml/s_s1
|
|||
|
|
|||
|
Установить реестр групп систем
|
|||
|
|
|||
|
feature:install system-group-registry
|
|||
|
|
|||
|
Установить профиль группы систем
|
|||
|
|
|||
|
install -s blueprint:mvn:ru.entaxy.esb.integration.esb.test.profiles/test-profiles/1.0-SNAPSHOT/xml/g_fzd
|
|||
|
|
|||
|
Установить мост
|
|||
|
|
|||
|
feature:install bridge
|
|||
|
|
|||
|
Установить сервис управления учётными записями
|
|||
|
|
|||
|
feature:install basic-auth
|
|||
|
|
|||
|
Установить events
|
|||
|
|
|||
|
feature:install events
|
|||
|
|
|||
|
Для дев окружения может быть полезна команда watch
|
|||
|
|
|||
|
bundle:watch mvn:ru.entaxy.esb/nsi-esb/1.0-SNAPSHOT
|
|||
|
|
|||
|
#### Шаг 5: Проверка доступности сервиса через браузер, используя следующий адрес.
|
|||
|
|
|||
|
Подразумевается использование настроек по умолчанию для карафовского PAX Web, который для http настроен на порт `8181`. Если Вы желаете использовать другой порт или https, то необходимо поменять настройки в `${KARAF_HOME}/etc/org.ops4j.pax.web.cfg`. Непосредственное продолжение адреса после имени хоста и номера порта (в примере ниже `cxf`) можно настроить в файле `org.apache.cxf.osgi.cfg`. (Для более подробной информации по PAX Web перейдите по ссылке [http://team.ops4j.org/wiki/display/paxweb/Pax+Web](http://team.ops4j.org/wiki/display/paxweb/Pax+Web))
|
|||
|
|
|||
|
#### Шаг 6: Запуск SOAPUI или Postman
|
|||
|
|
|||
|
Отправка POST запроса на адрес
|
|||
|
|
|||
|
http://localhost:8181/cxf/xdto/NSI
|
|||
|
|
|||
|
Тестовый запрос:
|
|||
|
|
|||
|
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xdto="http://www.entaxy.ru/xdto_NSI">
|
|||
|
<soap:Header/>
|
|||
|
<soap:Body>
|
|||
|
<xdto:GetMDMReferences/>
|
|||
|
</soap:Body>
|
|||
|
</soap:Envelope>
|
|||
|
|
|||
|
Ответ сожержит GUID, скопируйте его и отправьте для получения результата:
|
|||
|
|
|||
|
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xdto="http://www.entaxy.ru/xdto_NSI">
|
|||
|
<soap:Header/>
|
|||
|
<soap:Body>
|
|||
|
<xdto:GetResult>
|
|||
|
<xdto:RequestNumber>{GUID}</xdto:RequestNumber>
|
|||
|
</xdto:GetResult>
|
|||
|
</soap:Body>
|
|||
|
</soap:Envelope>
|
|||
|
|
|||
|
## Автотесты
|
|||
|
|
|||
|
<https://learning.getpostman.com/docs/postman/collection_runs/command_line_integration_with_newman/>
|
|||
|
|
|||
|
#### Установка
|
|||
|
|
|||
|
npm install -g newman
|
|||
|
|
|||
|
#### Запуск
|
|||
|
|
|||
|
cd test
|
|||
|
newman run "Entaxy Integration Tests.postman_collection.json" -e "entaxy dev proxy.postman_environment.json"
|
|||
|
|
|||
|
#### Запуск нагрузочных тестов через Jmeter
|
|||
|
|
|||
|
В тестах прописана система s1, запросы направляются на 83 ноду
|
|||
|
|
|||
|
* 1C-EXCHANGE_SEND_GET_ASK.jmx - запись и чтение с подтверждением последовательно
|
|||
|
* 1C-EXCHANGE_SEND_GET_ASK_ASYNC.jmx - запись и чтение с подтверждением в параллельных потоках
|
|||
|
|
|||
|
Можно запускать с машины 192.168.122.76
|
|||
|
|
|||
|
cd /opt/jenkins/.jenkins/workspace/test_master/test/jmeter
|
|||
|
/opt/apache-jmeter-5.2.1/bin/jmeter.sh -n -t ./1C-EXCHANGE_SEND_GET_ASK_ASYNC.jmx
|