Инструкция по настройке Q.Integration

Инструкция по настройке Q.Integration

1. 1. Выпуски Q.Integration

Актуальные версии образов

  • registry-new.diasoft.ru/release/qintdui:1.53.01-24100805

  • registry-new.diasoft.ru/release/qintdintegrationservice:24082701

  • registry-new.diasoft.ru/release/database-qintdintegrationservice:24082701

  • registry-new.diasoft.ru/release/qmappui:24100802

  • registry-new.diasoft.ru/release/qiregintegrationflow:24101103

  • registry-new.diasoft.ru/release/database-qiregintegrationflow:24101103

  • registry-new.diasoft.ru/release/qiregui:24090405

  • registry-new.diasoft.ru/release/qintmqmessagebroker:2.33.0-24100302

  • registry-new.diasoft.ru/release/qintrkaraf:4.4.5-24080902

  • registry-new.diasoft.ru/release/qmmmsgpackage:24100201

  • registry-new.diasoft.ru/release/database-qmmmsgpackage:24100201

  • registry-new.diasoft.ru/release/qmmui:24100301

    2. Создание эталонной базы данных проекта

Перед созданием проекта необходимо подготовить эталонную базу данных проекта. Для этого необходимо определить список существующих схем БД, которые будут использоваться в проекте. Список модулей и их БД:

  1. QINTD - Дизайнер интеграционных потоков (Q.Integration Designer): qintdintegrationservice
  2. QIREG - Реестр интеграционных потоков (Q.Integration Registry): qiregintegrationflow
  3. QMM - Учет сообщений (Q.Message Management): qmmmsgpackage

Список модулей без БД:

  1. QINTMQ - Приложение является асинхронной системой обмена сообщениями и способно координировать трафик сообщений между процессами в распределенных системах через экземпляр работающего брокера (Q.Artemis): qintmqmessagebroker
  2. QINTR - Приложение представляет собой модульную среду для запуска интеграционных адаптеров (Q.Karaf): qintrkaraf

2.1 Q.Integration Руководство по установке и запуску сервисов

Установка сервисов производится через платформу Q.CMDB (Инструменты для управления конфигурацией стенда, планирование поставок, заполнения справочников ИТ компонент), с помощью инструмента "Поставки".

Подробнее про использование поставок можно прочитать здесь

Настройка конфигурации сервисов

Примеры общих настроек неймспейса:

system-config
ARTEMIS_BROKER_URL: tcp://"URL Артемиса, с портом k8s, проброшенным на 61616"
AUTH_SERVER_CONTEXT: mdpauth
AUTH_SERVER_URL: "URL mdpauth"
AUTH_SERVICE: mdpauth
DB_TEST_QUERY: select 1
DISCOVERY_CLIENT_NAME: kubernetes
EUREKA_INSTANCE_HOSTNAME: ftdiscovery
EUREKA_INSTANCE_PORT: '8761'
EUREKA_URL: http://ftdiscovery:8761/eureka/ (opens in a new tab)
JPA_DIALECT: org.hibernate.dialect.PostgreSQL95Dialect
KAFKA_HOST: "Хост Кафки"
KAFKA_PORT: "Порт Кафки"
KAFKA_URL: "URL Кафки" KUBERNETES_API_HOST: https://kubernetes.default (opens in a new tab)
KUBERNETES_LEGACY_MOD: 'false'
LICENSE_PATH: /share/license
LPATH: /share/config/
MDPSECURITY_DB_CONNECTION_TEST_QUERY: select 1
MDPSECURITY_DB_DATABASE: "Название БД"
MDPSECURITY_DB_DRIVER: org.postgresql.Driver
MDPSECURITY_DB_SCHEMA: mdpsecurity
MDPSECURITY_DB_URL: "URL БД"?currentSchema=mdpsecurity
MESSAGEMANAGEMENT_URL_SERVICE: "URL qmmmsgpackage"
PROBE_API: /actuator/health
PROBE_TYPE: http
QOAUTH_MODE: mdpauth
QSAVER_HOST: qfluentbitsocket.logging
QSAVER_PORT: '5170'
QSAVER_URL: qfluentbitsocket.logging:5170
SERVICE_DISCOVERY_PORT: '8761'
SERVICE_PORT: '8080'
USE_TOKEN_FOR_FEIGN: 'false'
USE_VAULT: 'false'
system-secret
DB_ADMIN: "Логин админа БД"
DB_ADMINPASSWORD: "Пароль админа БД"
DB_DATABASE: "Логин админа БД"
DB_DRIVER: org.postgresql.Driver
DB_HOST: "Хост БД"
DB_PORT: "Порт БД"
DB_POSTGRESDRIVER: org.postgresql.Driver
DB_QUOTED_IDENTIFIERS: false
DB_TYPE: postgres
DB_URL: "URL БД"
MDPSECURITY_DB_LOGIN: mdpsecurity
MDPSECURITY_DB_PASSWORD: mdpsecurity
OAUTH2_CLIENT_ID: client
OAUTH2_CLIENT_SECRET: secret
TECH_PASSWORD: 12345678
TECH_USERNAME: dqtech
Примеры необходимых настроек для модулей:
qintdui
SECURITY_ENABLED: 'false'
SERVICE_NAME: qintdui
qintdintegrationservice
ADMIN_SERVER_URL: mdpgateway:8080
ALLOW_ALL_FOR_DEBUG: 'true'
AUTH_SERVER_CONTEXT: mdpauth
AUTH_SERVER_URL: http://mdpauth:8080 (opens in a new tab)
CONFELEMENT_KIND: '2'
DB_CONNECTION_TEST_QUERY: SELECT 1
DEFAULT_BINDER: kafka
JPA_DIALECT: org.hibernate.dialect.PostgreSQL95Dialect RIBBON_REFRESH_INTERVAL: '10000'
SERVICE_NAME: qintdintegrationservice
SERVICE_PORT: '8080'
qmappui
SECURITY_ENABLED: 'false'
SERVICE_NAME: qmappui
qiregui
SECURITY_ENABLED: 'false'
SERVICE_NAME: qiregui
qmmmsgpackage
ALLOW_ALL_FOR_DEBUG: 'false'
ASYNC_CLIENT_TIMEOUT: '180'
AUTH_PROVIDER: digitalq
CONFELEMENT_KIND: '2'
DB_QUOTED_IDENTIFIERS: 'true'
DEBUG: 'true '
DEFAULT_BINDER: kafka
GATEWAY_URL: http://mdpgateway:8080/ (opens in a new tab)
JPA_DIALECT: org.hibernate.dialect.PostgreSQL95Dialect
KAFKA_BOOTSTRAP_SERVERS: "URL Кафки"
SECURITY_ENABLED: 'false'
SERVICE_PORT: '8080'
qmmui
SECURITY_ENABLED: 'false'
SERVICE_NAME: qmmui
qintmqmessagebroker
ALLOW_ALL_FOR_DEBUG: 'true'
ARTEMIS_BROKER_URL: tcp://localhost:61616
ARTEMIS_USER: artemis
AUTH_PROVIDER: digitalq
AUTH_SERVER_CONTEXT: mdpauth
AUTH_SERVER_URL: http://mdpauth:8080 (opens in a new tab)
DEFAULT_BINDER: kafka
HIKARI_CONNECTION_TIMEOUT: '30000'
HIKARI_IDLE_TIMEOUT: '600000'
HIKARI_MAXIMUM_POOLSIZE: '50'
HIKARI_MAX_LIFETIME: '1800000'
HIKARI_MINIMUM_IDLE: '10'
LIQUIBASE_ENABLED: 'false'
LOGGING_HIBERNATE_LEVEL: DEBUG
LOGGING_LEVEL: DEBUG
LOGGING_LEVEL_RU_DIASOFT: DEBUG
LOGGING_ROOT_LEVEL: DEBUG
QSAVER_HOST: qfluentbitsocket.logging
QSAVER_PORT: '5170'
QSAVER_URL: qfluentbitsocket.logging:5170
SERVICE_NAME: qintmqmessagebroker
SERVICE_PORT: '8161'
Установка сервисов qintmqmessagebroker и qintrkaraf:
- qintmqmessagebroker:
При развертывании сервиса нужно в K8S добавить запись в config-map с названием share-
entrypoint-volume:
share-entrypoint-volume
qintmqmessagebroker.sh: |
/opt/broker/bin/artemis run

Убедиться, что в деплойменте сервиса есть mount к share-entrypoint-volume, иначе сервис не запустится

А также изменить тип service с ClusterIp на NodePort со следующей записью для портов: service

  • name: http
    protocol: TCP
    port: 8161
    targetPort: 8161
    nodePort: "свободный порт k8s"
  • name: tcp
    protocol: TCP
    port: 61616
    targetPort: 61616
    nodePort: "свободный порт k8s"
    Свободный порт k8s должен быть из диапазона 30000-32767.

Пример: doc-integration-setup-guide-scr-1

Сделать рестарт деплоймента. UI сервиса станет доступен по адресу:
http://qintmqmessagebroker."namespace"."название (opens in a new tab) стенда".diasoft.ru:"порт K8S"/
- qintrkaraf:
При развертывании сервиса нужно в K8S добавить запись в config-map с названием share-
entrypoint-volume:
share-entrypoint-volume
qintrkaraf.sh: |
/opt/karaf/bin/karafrun

Убедиться, что в деплойменте сервиса есть mount к share-entrypoint-volume, иначе сервис не запустится

А также изменить тип service с ClusterIp на NodePort со следующей записью для портов:

service

  • name: http protocol: TCP port: 8181 targetPort: 8181 nodePort: "свободный порт k8s" Свободный порт k8s должен быть из диапазона 30000-32767.

Пример: doc-integration-setup-guide-scr-2

Сделать рестарт деплоймента. UI сервиса станет доступен по адресу: http://qintrkaraf."namespace"."название (opens in a new tab) стенда".diasoft.ru:"порт K8S"/ Для работы сервисов Q.Integration потребуется установка актуальных версий платформенных сервисов:

  • mdpauth
  • mdpdepartments
  • mdpemployee
  • mdpgateway
  • mdprefs
  • mdproles
  • mdpsenders
  • mdpsettings
  • mdpusers

Актуальные версии платформенных сервисов запрашивать у команды "Инструменты и платформа Back-end разработки" Опционально: Для работы бизнес-процессов потребуется установка актуальных версий сервисов

Q.BPM:

  • qbpmdesigner
  • qbpmcockpit
  • dqhumantask
  • qbpetqbpmplayer
  • humantaskui
  • qbpmui

Актуальные версии платформенных сервисов запрашивать у команды "Технологическая платформа Q.BPM"

2.2 Распространенные ошибки при запуске сервисов

1.Не стартует сервис артемиса с ошибкой "Using image entrypoint" doc-integration-setup-guide-scr-3

Убедиться, что в деплойменте сервиса есть маунт к share-entrypoint-volume: doc-integration-setup-guide-scr-4 doc-integration-setup-guide-scr-5

  1. Ошибки сервиса при соединении к артемису - должен быть указан ARTEMIS_URL в конфиге, обязательно с куберовским портом проброшенным к 61616 - пример: tcp://qintmqmessagebroker.int.qrun.diasoft.ru:30854

  2. Ошибка пода status 404. Исправить в deployment блок с пробами и привести его к виду:

livenessProbe:
  tcpSocket:
    port: 8161
  initialDelaySeconds: 1200
  timeoutSeconds: 5
  periodSeconds: 30
  successThreshold: 1
  failureThreshold: 7
readinessProbe:
  tcpSocket:
    port: 8161
  timeoutSeconds: 5
  periodSeconds: 30
  successThreshold: 1
  failureThreshold: 7
startupProbe:
  tcpSocket:
    port: 8161
  timeoutSeconds: 5
  periodSeconds: 30
  successThreshold: 1
  failureThreshold: 40