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