initial public commit
BIN
documentation/connectors/uniform-exchange-service/US-active.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
documentation/connectors/uniform-exchange-service/US.png
Normal file
After Width: | Height: | Size: 44 KiB |
@ -0,0 +1,76 @@
|
||||
= Активный режим коннектора
|
||||
|
||||
image::US-active.png[]
|
||||
|
||||
== Сервис для отладки активного коннектора
|
||||
|
||||
Поднимается на endpoint _/active_connector_test_consumer_
|
||||
при выставленной настройке _active.mode.dev=true_ в файле конфигураций _uniform.service.support.cfg_
|
||||
|
||||
|
||||
== Requests Examples
|
||||
|
||||
POST http://192.168.122.83:8181/cxf/uniform-exchange
|
||||
|
||||
==== SEND MESSAGE:
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.entaxy.ru/ExchangeTypes/1.0">
|
||||
<soapenv:Header/>
|
||||
<soapenv:Body>
|
||||
<ns:packets>
|
||||
<ns:packet>
|
||||
<ns:header>
|
||||
<ns:messageUUID>b7e6aab7-8f02-443c-8f67-e2d638dd4da0</ns:messageUUID>
|
||||
<ns:source>
|
||||
<ns:id>s1</ns:id>
|
||||
</ns:source>
|
||||
<ns:destination>
|
||||
<ns:id>s2</ns:id>
|
||||
</ns:destination>
|
||||
</ns:header>
|
||||
<ns:content>
|
||||
<test>
|
||||
<hello_world/>
|
||||
</test>
|
||||
</ns:content>
|
||||
</ns:packet>
|
||||
</ns:packets>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>
|
||||
----
|
||||
|
||||
==== GET MESSAGE:
|
||||
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.entaxy.ru/ExchangeTypes/1.0">
|
||||
<soapenv:Header/>
|
||||
<soapenv:Body>
|
||||
<ns:request>
|
||||
<ns:destination>
|
||||
<ns:id>s2</ns:id>
|
||||
<ns:type>system.name</ns:type>
|
||||
</ns:destination>
|
||||
<ns:limitCount>1</ns:limitCount>
|
||||
<ns:limitSize>0</ns:limitSize>
|
||||
</ns:request>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>
|
||||
----
|
||||
|
||||
==== ACK MESSAGE:
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.entaxy.ru/ExchangeTypes/1.0">
|
||||
<soapenv:Header/>
|
||||
<soapenv:Body>
|
||||
<ns:uuids>
|
||||
<ns:uuid>{{message_uuid}}</ns:uuid>
|
||||
</ns:uuids>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>
|
||||
----
|
@ -0,0 +1,35 @@
|
||||
= IGNITE
|
||||
|
||||
IgniteAggregationRepository сделано на основе JdbsAggregationRepository
|
||||
документация https://help.talend.com/reader/Uc2IlRuFVfGrjaFPdRI7kA/fBdqK2kf6iIkLHQf9nLh6g
|
||||
|
||||
Есть некоторые внутренние баги karaf, которые не позволяют установить некоторые ignite фичи в караф
|
||||
https://github.com/apache/ignite/blob/fd921a233d35408883695419b6f9979ac674d1b9/modules/osgi-karaf/src/main/resources/features.xml#L87
|
||||
|
||||
В карафе поднимается ignite, с рабочей директорией, прописанной в ru.entaxy.esb.ignite.cfg,
|
||||
в параметре ignite.work.directory.path. Это место, где игнайт
|
||||
создает для себя все, что нужно, и будет хранить данные.
|
||||
|
||||
Ignite настроен с сохранением персисетнтности данных(сохранением их на диск) и
|
||||
созданием реплицации(бэкапов) на других узлах кластера.(при потере одной ноды,
|
||||
другие восстановят данные, которе хранились на текущем узле)
|
||||
|
||||
IGNITE_QUIET=false - параметр необходимый для того, чтобы игнайт не писал информацию о себе в лог,
|
||||
для того что бы параметр применился, необходимо выставить setGridLogger,
|
||||
смогла установить в караф только JclLogger.
|
||||
|
||||
**AggregationProcessor**
|
||||
|
||||
AggregationProcessor стандартный, не расчитан на работу в кластере из-за чего пришлось вытаскивать исходники
|
||||
и редактировать сам процессор.(AggregationProcessorWithRestoreTimeout)
|
||||
Т к теперь AggregationProcessor вызывается как bean, а не как стандартный камеловский процессор,
|
||||
то процесс старта и остановки происходит в отличном порядке.
|
||||
|
||||
Для работы к кластере:
|
||||
- добавлен механизм восстановления работы таймаутов на других нодах,
|
||||
- отредактирован механизм удаления сообщения из репозитория(возникало состояние гонки и появлялись дубликаты),
|
||||
- исправлен механизм продолжения работы с "застрявшими" сообщениями (recoverTask из таблицы _completed)
|
||||
- добавлен безопасный механизм забора сообщений из очереди(восстановление сообщения в очереди, если не пришло подтверждение)
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 53 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 29 KiB |
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 51 KiB |
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 78 KiB |
After Width: | Height: | Size: 81 KiB |
After Width: | Height: | Size: 64 KiB |
After Width: | Height: | Size: 56 KiB |
After Width: | Height: | Size: 57 KiB |
After Width: | Height: | Size: 78 KiB |
@ -0,0 +1,89 @@
|
||||
= Инструкция для работы с шиной через универсальный коннектор
|
||||
|
||||
=== Преднастройка окружения
|
||||
|
||||
. Скачать и установить postman(https://www.postman.com/downloads/).
|
||||
. Импортировать коллекцию запросов и окружение в postman
|
||||
|
||||
Далее показано как импортироваться коллекцию запросов и окружение в postman Version 8.11.1, если стоит другая версия и возникли сложности с инструкцией, то обратитесь к документации postman(https://learning.postman.com/docs/getting-started/importing-and-exporting-data/).
|
||||
|
||||
=== Импорт коллекции запросов и окружения в postman
|
||||
|
||||
* Если вы на домашней странице postman, то нажмите _Import file_, как показано ниже на скрине.
|
||||
|
||||
image::img/photo5298499320133302025.jpg[]
|
||||
|
||||
* Если вы не на домашней странице postman, то нажмите _File_, _Import..._, как показано ниже на скрине.
|
||||
|
||||
image::img/photo5298499320133302031.jpg[]
|
||||
|
||||
* Далее откроется окно с импортом файла, где нужно нажать на _Upload Files_ и импортировать файлы, по одному или сразу оба(xref:postman/uniform-connector.postman_environment.json[Окружение], xref:postman/uniform-connector.postman_collection.json[Коллекция запросов])
|
||||
|
||||
image::img/photo5298499320133302028.jpg[]
|
||||
|
||||
* Или можно импортировать сразу всю папку с файлами(xref:postman/uniform-connector.postman_environment.json[Окружение], xref:postman/uniform-connector.postman_collection.json[Коллекция запросов])
|
||||
|
||||
image::img/photo5298499320133302034.jpg[]
|
||||
|
||||
image::img/photo5298499320133302035.jpg[]
|
||||
|
||||
* Далее мы увидим импортированную коллекцию запросов слева и необходимо выбрать импортированное ранее окружение
|
||||
|
||||
image::img/photo5298499320133302038.jpg[]
|
||||
image::img/photo5298499320133302039.jpg[]
|
||||
|
||||
* Есть возможность настраивать параметры запросов, документация на данную тему(https://learning.postman.com/docs/sending-requests/managing-environments/)
|
||||
|
||||
image::img/photo5298499320133302041.jpg[]
|
||||
|
||||
* Коллекция запросов и окружение были успешно импортированы в postman и готовы к использованию, можно запустить все запросы в автоматическом режиме или запускать их в ручную по очереди
|
||||
|
||||
=== Запуск всех запросов в автоматическом режиме
|
||||
|
||||
* Необходимо нажать на _Run Collection_ в меню коллекции, как показано ниже
|
||||
|
||||
image::img/photo5298499320133302042.jpg[]
|
||||
image::img/photo5298499320133302043.jpg[]
|
||||
|
||||
* Можно увидеть успешное прохождение коллекции. При успешном прохождении коллекции тестов шина будет очищена. Если не подразумевалось данное поведение, то необходимо снять выделение с запросов(_Remove profile system1_, _Remove profile system2_, _Remove Account system1_, _Remove Account system2_)
|
||||
|
||||
image::img/photo5298499320133302044.jpg[]
|
||||
image::img/photo5298499320133302046.jpg[]
|
||||
|
||||
=== Запуск запросов в ручную по очереди
|
||||
|
||||
* Для запуска конкретного запроса нужно нажать на него в меню слева, затем откроется меню редактирования запроса, где можно посмотреть все параметры запроса и настроить его как необходимо и нажимая на кнопку _Send_ запрос отправляется на шину
|
||||
|
||||
image::img/photo5298499320133302047.jpg[]
|
||||
|
||||
=== Описание окружения
|
||||
|
||||
... _base_url_ - если запросы будут запускаться с машины находящейся с шиной, то данный параметр не нужно менять(http://localhost:8181/cxf), иначе заменить localhost:8181 на необходимый
|
||||
... _system1_id_ - имя/идентификатор системы, то как будет представлена система в шине(по умолчанию s1)
|
||||
... _system1Login_ - логин системы, то как будет аутентифицироваться система в шине(по умолчанию s1)
|
||||
... _system1Password_ - пароль системы, то как будет аутентифицироваться система в шине(по умолчанию s1)
|
||||
... _system2_id_ - имя/идентификатор системы, то как будет представлена система в шине(по умолчанию s1)
|
||||
... _system2Login_ - логин системы, то как будет аутентифицироваться система в шине(по умолчанию s1)
|
||||
... _system2Password_ - пароль системы, то как будет аутентифицироваться система в шине(по умолчанию s1)
|
||||
... _adminLogin_ - админская учетная запись, для произведения настроек в шине(по умолчанию admin)
|
||||
... _adminPassword_ - админская учетная запись, для произведения настроек в шине(по умолчанию admin)
|
||||
|
||||
=== Содержимое тестов
|
||||
. Коллекция запросов содержит следующие шаги:
|
||||
.. _Create profile system1_ - создание профиля системы 1, которая будет отправлять сообщения в шину
|
||||
.. _Create profile system2_ - создание профиля системы 2
|
||||
.. _Add Account system1_ - создание учетной записи для системы 1
|
||||
.. _Add Account system2_ - создание учетной записи для системы 2
|
||||
.. _Create uniform-service-in-connector_ - создание входящего коннектора к универсальному сервису для системы 1
|
||||
.. _Create uniform-service-out-connector_ - создание исходящего коннектора к универсальному сервису для системы 1
|
||||
.. _Create uniform-service-in-connector_ - создание входящего коннектора к универсальному сервису для системы 2
|
||||
.. _Get profile system1_ - запросы для проверки на корректное создания профиля системы1 и коннекторов к нему(uniform-service-in-connector)
|
||||
.. _Get profile system2_ - запросы для проверки на корректное создания профиля системы1 и коннекторов к нему(uniform-service-in-connector, uniform-service-out-connector)
|
||||
.. _Create permission_ - создание разрешения для отправки сообщений из системы 1 в систему 2
|
||||
.. _SEND_ - отправка тестового сообщения из системы 1 в систему 2
|
||||
.. _GET_ - получение тестового сообщения из системы 1 системой 2
|
||||
.. _ACK_ - отправка подтверждения получения сообщения системы 2(иначе сообщение будет восстановлено)
|
||||
.. _Remove profile system1_ - удаление из шины профиля системы 1 и всех связанных с ней коннекторов
|
||||
.. _Remove profile system2_ - удаление из шины профиля системы 2 и всех связанных с ней коннекторов
|
||||
.. _Remove Account system1_ - удаление учетной записи системы 1 из шины
|
||||
.. _Remove Account system2_ - удаление учетной записи системы 2 из шины
|
@ -0,0 +1,54 @@
|
||||
{
|
||||
"id": "527e5257-25b4-4246-ac5a-26b88e06eec8",
|
||||
"name": "uniform-connector",
|
||||
"values": [
|
||||
{
|
||||
"key": "base_url",
|
||||
"value": "http://localhost:8181/cxf",
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"key": "system1_id",
|
||||
"value": "s1",
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"key": "system2_id",
|
||||
"value": "s2",
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"key": "adminLogin",
|
||||
"value": "admin",
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"key": "adminPassword",
|
||||
"value": "admin",
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"key": "system1Login",
|
||||
"value": "s1",
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"key": "system1Password",
|
||||
"value": "s1",
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"key": "system2Login",
|
||||
"value": "s2",
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"key": "system2Password",
|
||||
"value": "s2",
|
||||
"enabled": true
|
||||
}
|
||||
],
|
||||
"_postman_variable_scope": "environment",
|
||||
"_postman_exported_at": "2021-08-24T14:43:46.375Z",
|
||||
"_postman_exported_using": "Postman/7.36.5"
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
= Универсальный сервис(US)
|
||||
|
||||
Универсальный сервис разработан для корректного и единообразного взаимодействия с _Entaxy_ из _1С интеграции_.
|
||||
|
||||
image::US.png[]
|
||||
|
||||
=== US endpoint
|
||||
|
||||
Универсальный сервис выставлен с помощью soap (может быть заменен на любой другой способ обмена сообщения, например rest, с сохранением схемы), в котором 3 метода _sendPackets_, _getPackets_ и _confirmPackets_. US endpoint включает в себя: выставленный soap сервис, проверку на существование коннектора и отправку в коннектор(что верно и для uniform-service-service-endpoint)
|
||||
|
||||
=== US connector
|
||||
|
||||
Коннектор занимается обработкой полученного пакета.
|
||||
|
||||
- _sendPackets_ - шина анализирует пакет, создавая служебную информацию(такую как имя системы отправителя, имя и тип получателя и т д) и отправляет в выходную точку профиля.
|
||||
|
||||
- _getPackets_ - шина делает проверку служебной информации(такую как имя системы отправителя, имя и тип получателя и т д) и забирает сообщение из очереди, дополнительно отправляя его в агрегатор. Агрегатор необходим для гарантированной доставки пакета, если в течение заданного таймаута (по умолчанию - 10 минут) не придет подтверждение, то пакет будет считаться не доставленным и будет восстановлен в очереди.
|
||||
|
||||
- _confirmPackets_ - шина делает проверку служебной информации(такую как имя системы отправителя, имя и тип получателя и т д), достает пакет из соответствующего источника (если оно есть) и отдает его системе, дополнительно отправляя в агрегатор, который если собирает пару(пакет и подтверждение) считает его доставленным и удаляет из шины.
|
||||
|
||||
_Агрегатор_ может хранить сообщения в ignite и базе данных, для переключения режима работы агрегатора необходимо установить необходимый параметр acknowledge.aggregation.repository (по умолчанию - jdbcAggregationRepository) в uniform.service.support.cfg
|
||||
|
||||
https://help.talend.com/r/Bejd_\~iSyuyc~nF9XIgDIw/fBdqK2kf6iIkLHQf9nLh6g[Информация по jdbcAggregationRepository]
|
||||
|
||||
xref:ignite.adoc[Информация по igniteAggregationRepository]
|
||||
|
||||
=== US support
|
||||
|
||||
Необходим как вспомогательный элемент. Содержит в себе: настройку агрегатора, маршруты работы агрегатора, маршрут связанный с отправкой в систему в активном режиме коннектора.
|
||||
|
||||
== Режимы универсального сервиса:
|
||||
|
||||
- _Пассивный_ выражен в поднятом на стороне шины сервисе, который "пассивно" ждет запроса от системы.
|
||||
|
||||
- _Активный_ выражен в поднятом на стороне системы сервисе, который с некоторой периодичностью (настраивается при создании коннектора, по умолчанию 1m) опрашивает шина на предмет подготовленных сообщений, и, отправляет полученные сообщения в систему как только они пришли.
|
||||
|
||||
xref:active-mode.adoc#_активный_режим_коннектора[Информация по активному режиму работы универсального сервиса]
|
||||
|