Налаштування таймауту для BPMS та Rest API
1. Опис проблеми
При виконанні задачі зі збереженням сутності у БД, якщо Kafka не встигала обробити запит протягом 30 секунд, REST API отримував таймаут-помилку.
Через невизначеність результатів запита, існувала ймовірність дублювання сутностей у БД. Для поліпшення досвіду розробки ми додали можливість налаштувати значення таймауту для bpms та rest-api.
2. Інструкція з налаштування таймауту
Для налаштування таймауту виконайте наведені нижче кроки.
2.1. Кроки для налаштування
Перевизначите параметри таймаута у файлі конфігурації реєстру:
- 
Відкрийте файл deploy-templates/values.gotmplу репозиторії реєстру.
- 
Додайте наступні блоки налаштувань у секції .global.registry:bpms: springOpenfeign: defaultReadTimeout: 70000 # 70 секунд defaultConnectTimeout: 20000 # 20 секунд restApi: kafka: timeoutInSeconds: 40 # 40 секунд 
2.2. Пояснення параметрів
- Для сервісу bpms:
- 
- 
readTimeout— час очікування читання даних. За замовчуванням:60000(60 секунд). Перевизначається за шляхом.global.registry.bpms.springOpenfeign.defaultReadTimeout.
- 
connectionTimeout— час очікування підтвердження з’єднання. За замовчуванням:10000(10 секунд). Перевизначається за шляхом.global.registry.bpms.springOpenfeign.defaultConnectTimeout.
 
- 
- Для сервісу rest-api:
- 
- 
request-reply.timeout-in-seconds— час очікування відповіді відkafka-api. За замовчуванням:30секунд. Перевизначається за шляхом.global.registry.restApi.kafka.timeoutInSeconds.
 
- 
2.3. Застосування змін
- 
Оновлення конфігурації реєстру. - 
Виконайте коміт змін у файлі values.gotmplдо Gerrit-репозиторію.
- 
Дочекайтеся завершення пайплайну MASTER-Build для застосування нової конфігурації реєстру. 
 
- 
- 
Оновлення налаштувань регламенту реєстру. Запустіть збірку моделі даних регламенту — MASTER-Build-registry-regulations/data-model через стандартний процес внесення змін: - 
Виконайте коміт змін до моделі даних ( data-model) Gerrit-репозиторію.
- 
Дочекайтеся автоматичної збірки сервісом Jenkins. 
 
- 
- 
Рестарт поду bpms.- 
Відкрийте Вебінтерфейс управління кластером OpenShift (Console). 
- 
Перейдіть до меню . 
- 
Знайдіть под bpmsта у контекстному меню⋮натисніть кнопку Delete Pod, щоб видалити под.
- 
Kubernetes автоматично створить новий под з оновленою конфігурацією. 
 
- 
2.4. Результат
Після виконання цих кроків:
- 
Таймаут очікування для bpmsтаrest-apiналаштовано відповідно до нових значень.
- 
Kafka має більше часу для успішної обробки запитів.