Процес підтримки прийняття рішення для налаштування Apache Kafka-продюсера

Заголовок (англійською): 
Decision support process to define Apache Kafka producer configuration
Автор(и): 
Соловей О. Л.
Автор(и) (англ): 
Solovei Olha
Ключові слова (укр): 
Kafka–топік; дискретна мережа Байєса; параметри мережі Байєса; аналіз чутливості; апостеріорна ймовірність
Ключові слова (англ): 
Kafka topic; discrete Bayesian network; parameters of a Bayesian network; sensitivity analysis; posterior probability
Анотація (укр): 
Предметом статті є методи підтримки прийняття рішень щодо визначення конфігурації Apache Kafka-кластера для забезпечення високої пропускної здатності повідомлень від Kafka-продюсера до Kafka-споживача, що є однією з ключових вимог для інформаційних технологій управління різнорідними даними проєктів міського будівництва. Метою роботи є розробка процесу підтримки прийняття рішень щодо визначення кількості розділів в Apache Kafka-топіку на основі аналізу чутливості в дискретній мережі Байєса. Процес пропонує рекомендації стосовно метрик продуктивності Apache Kafka-продюсера та їх інтервальних значень, які слід враховувати під час визначення кількості розділів. Для досягнення поставленої мети в роботі вирішені завдання: огляд і аналіз наявних формальних методів для визначення кількості розділів в Apache Kafka-топіку та визначення причин, через які ці методи можуть бути менш ефективними; розроблення структури мережі Байєса для включення в процес підтримки прийняття рішень щодо визначення кількості розділів у Apache Kafka-топіку; визначення математичних методів для обчислення параметрів мережі Байєса та кількісної оцінки чутливості апостеріорної ймовірності цільової функції до зміни значень параметрів мережі; оцінка запропонованого процесу на основі результатів перевірочних тестувань; аналіз діаграм метелика для ранжування параметрів мережі Байєса за силою впливу на цільову змінну. Для реалізації поставлених завдань використовувалися методи з теорій: ймовірності та статистики, системного аналізу, штучного інтелекту, інформаційних технологій. На основі отриманих результатів перевірочних тестувань запропонованого процесу доведено здатність використання процесу для формування рекомендацій щодо визначення розділів у Kafka-топіку. Крім того, запропонований процес визначає метрики продуктивності Apache Kafka-продюсера, значення яких слід постійно спостерігати для забезпечення продуктивності Kafka-продюсера після розгортання інформаційної технології, яка включає Kafka-кластер. Визначена на основі сформованих рекомендацій конфігурація Kafka-топіку зменшить ймовірність виникнення сценаріїв, коли ці конфігурації переглядаються після розгортання інформаційної системи, що призводить до ризику порушення порогу доступності даних.
Анотація (англ): 
The subject of the article is decision support methods for determining the configuration of an Apache Kafka cluster that ensures high throughput for messages from the Kafka producer to the Kafka consumer, which is one of the key requirements for information technologies managing heterogeneous data in urban construction projects. The purpose of the work is to develop a decision support process to determine the number of partitions in an Apache Kafka topic based on sensitivity analysis in a discrete Bayesian network. The process offers recommendations regarding the performance metrics of the Apache Kafka producer and their interval values that should be considered when determining the number of partitions. To achieve the stated goal, the following tasks were solved: reviewing and analyzing existing formal methods for determining the number of partitions in an Apache Kafka topic and identifying the reasons why these methods may be less effective; defining mathematical methods and developing the structure of a Bayesian network for inclusion in the decision support process for determining the number of partitions in an Apache Kafka topic; evaluating the proposed process based on the results of verification tests. To accomplish these tasks, methods from probability and statistics, systems analysis, artificial intelligence, and information technology theories were employed. Based on the results of verification tests of the proposed process, its ability to generate recommendations for determining the number of partitions in a Kafka topic has been demonstrated. Furthermore, the proposed process identifies performance metrics of an Apache Kafka producer, the values of which should be continuously monitored to maintain the producer's performance after deploying an information technology system that includes a Kafka cluster. The configuration of a Kafka topic, determined based on the formulated recommendations, will reduce the likelihood of scenarios where these configurations are revised after deploying the information system, which could lead to the risk of breaching the data availability threshold.
Публікатор: 
Київський національний університет будівництва і архітектури
Назва журналу, номер, рік випуску (укр): 
Управління розвитком складних систем, номер 61, 2025
Назва журналу, номер, рік випуску (англ): 
Management of Development of Complex Systems, number 61, 2025
Мова статті: 
Українська
Формат документа: 
application/pdf
Документ: 
Дата публікації: 
07 Апрель 2025
Номер збірника: 
Розділ: 
ІНФОРМАЦІЙНІ ТЕХНОЛОГІЇ УПРАВЛІННЯ
Університет автора: 
Київський національний університет будівництва і архітектури, Київ
Литература: 

1.     Babun, L., Denney, K., Celik, Z. B., McDaniel, P., & Uluagac, A. S. (2021). A survey on IoT platforms: Communication, security, and privacy perspectives. Computer Networks, 192, 108040.

2.     Apache Kafka Available online: https://kafka.apache.org/

3.     Kafka Producer. Available online: https://docs.confluent.io/platform/current/clients/producer.html

4.     Kafka Consumer. Available online: https://docs.confluent.io/platform/current/clients/consumer.html

5.     Apache Kafka Supports 200K Partitions Per Cluster. Available online: https://www.confluent.io/blog/apache-kafka-supports-200k-partitions-per-cluster/

6.     Turner, C. J., Oyekan, J., Stergioulas, L., & Griffin, D. (2020). Utilizing industry 4.0 on the construction site: Challenges and opportunities. IEEE Transactions on Industrial Informatics, 17 (2), 746–756.

7.     Mehmood, E., & Anees, T. (2020). Challenges and solutions for processing real-time big data stream: a systematic literature review. IEEE Access, 8, 119123–119143.

8.     Raptis, T. P., & Passarella, A. (2022, July). On efficiently partitioning a topic in apache kafka. In 2022 International Conference on Computer, Information and Telecommunication Systems (CITS) (pp. 1–8). IEEE.

9.     Wu, H., Shang, Z., Peng, G., & Wolter, K. (2020, October). A reactive batching strategy of apache kafka for reliable stream processing in real-time. In 2020 IEEE 31st International Symposium on Software Reliability Engineering (ISSRE) (pp. 207–217). IEEE.

10.  Wu, H., Shang, Z., & Wolter, K. (2019, August). Performance prediction for the apache kafka messaging system. In 2019 IEEE 21st International Conference on High Performance Computing and Communications; IEEE 17th International Conference on Smart City; IEEE 5th International Conference on Data Science and Systems (HPCC/SmartCity/DSS) (pp. 154–161). IEEE.

11.  Kafka producer metrics. Available online: https://kafka.apache.org/32/generated/producer_metrics.html.

12.  Solovei, O. (2023, November). Analysis of a fixed-width binning method. In 2023 2nd International Conference on Innovative Solutions in Software Engineering (ICISSE) (p. 49).

13.  Wasserkrug, S., Marinescu, R., Zeltyn, S., Shindin, E., & Feldman, Y. A. (2021, May). Learning the parameters of bayesian networks from uncertain data. In Proceedings of the AAAI Conference on Artificial Intelligence (Vol. 35, No. 13, pp. 12190–12197).

References: 

1.     Babun, L., Denney, K., Celik, Z. B., McDaniel, P., & Uluagac, A. S. (2021). A survey on IoT platforms: Communication, security, and privacy perspectives. Computer Networks, 192, 108040.

2.     Apache Kafka Available online: https://kafka.apache.org/

3.     Kafka Producer. Available online: https://docs.confluent.io/platform/current/clients/producer.html

4.     Kafka Consumer. Available online: https://docs.confluent.io/platform/current/clients/consumer.html

5.     Apache Kafka Supports 200K Partitions Per Cluster. Available online: https://www.confluent.io/blog/apache-kafka-supports-200k-partitions-per-cluster/

6.     Turner, C. J., Oyekan, J., Stergioulas, L., & Griffin, D. (2020). Utilizing industry 4.0 on the construction site: Challenges and opportunities. IEEE Transactions on Industrial Informatics, 17 (2), 746–756.

7.     Mehmood, E., & Anees, T. (2020). Challenges and solutions for processing real-time big data stream: a systematic literature review. IEEE Access, 8, 119123–119143.

8.     Raptis, T. P., & Passarella, A. (2022, July). On efficiently partitioning a topic in apache kafka. In 2022 International Conference on Computer, Information and Telecommunication Systems (CITS), (pp. 1–8). IEEE.

9.     Wu, H., Shang, Z., Peng, G., & Wolter, K. (2020, October). A reactive batching strategy of apache kafka for reliable stream processing in real-time. In 2020 IEEE 31st International Symposium on Software Reliability Engineering (ISSRE), pp. 207–217. IEEE.

10.  Wu, H., Shang, Z., & Wolter, K. (2019, August). Performance prediction for the apache kafka messaging system. In 2019 IEEE 21st International Conference on High Performance Computing and Communications; IEEE 17th International Conference on Smart City; IEEE 5th International Conference on Data Science and Systems (HPCC/SmartCity/DSS) (pp. 154–161). IEEE.

11.  Kafka producer metrics. Available online: https://kafka.apache.org/32/generated/producer_metrics.html.

12.  Solovei, O. (2023, November). Analysis of a fixed-width binning method. In 2023 2nd International Conference on Innovative Solutions in Software Engineering (ICISSE) (p. 49).

13.  Wasserkrug, S., Marinescu, R., Zeltyn, S., Shindin, E., & Feldman, Y. A. (2021, May). Learning the parameters of bayesian networks from uncertain data. In Proceedings of the AAAI Conference on Artificial Intelligence (Vol. 35, No. 13, pp. 12190–12197).