Налаштування таймауту для 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 має більше часу для успішної обробки запитів.