Друкарня від WE.UA

Яким чином пули з’єднань покращують роботу застосунку?

Звичайний бекенд розробник точно знає, що використання пулу з’єднань є набагато ефективнішим, ніж створення нового з’єднання кожного разу при такій потребі. Але чому це так?

❱ Пули з’єднань - це корисний механізм, що ефективно керує активними з'єднаннями з ресурсами, такими як бази даних або веб-сервіси. Але що саме робить пули з'єднань такими корисними? Давайте розглянемо детальніше.

1️⃣ Ефективність: Встановлення нового з'єднання з базою даних або веб-сервісом вимагає витрат часу та ресурсів.

TCP (Transmission Control Protocol) використовує процес, який називається "трирівневе підтвердження" (three-way handshake) для встановлення з'єднання між двома вузлами в мережі.

SYN (Synchronize): Клієнт відправляє пакет з прапорцем SYN на сервер, щоб вказати бажання встановити з'єднання. В цьому пакеті клієнт вказує свій початковий порядковий номер (sequence number), який він використовуватиме під час передачі даних.

SYN-ACK (Synchronize-Acknowledgment): Сервер отримує SYN-пакет від клієнта, і відповідає пакетом SYN-ACK. В цьому пакеті сервер вказує свій початковий порядковий номер та підтверджує отримання SYN-пакета від клієнта, додаючи 1 до порядкового номера, вказаного клієнтом.

ACK (Acknowledgment): Клієнт отримує SYN-ACK пакет від сервера, і відповідає ACK-пакетом. В цьому пакеті клієнт підтверджує отримання SYN-ACK пакета від сервера, додаючи 1 до порядкового номера, вказаного сервером. Після отримання ACK-пакета, сервер розуміє, що з'єднання встановлено.

2️⃣ Оптимізація ресурсів: Кількість відкритих з'єднань обмежена параметрами системи та мережевого обладнання. Пул з'єднань дозволяє уникнути перевантаження, що може виникнути від великої кількості одночасних з'єднань.

3️⃣ Керування швидкістю передачі даних (TCP Congestion Control and Flow Control): Під час встановлення нового з'єднання, TCP використовує алгоритми керуванням перевантаженнями, щоб забезпечити надійність і ефективність передачі. Початкова швидкість передачі даних може бути досить низькою, поки TCP "зрозуміє", яка швидкість є оптимальною. У випадку пулу з'єднань, вже встановлені з'єднання можуть використовувати максимальну швидкість передачі, оскільки ці параметри вже були визначені під час початкового встановлення з'єднання.

У TCP відправники продовжують збільшувати свою швидкість до тих пір, поки не спостерігають втрати пакетів у мережі. Втрати пакетів відбуваються тому, що відправники передають дані швидше, ніж конкретний маршрутизатор в мережі може вивільняти/обробити свій буфер з отриманими даними.

TCP сприймає втрату пакетів як «затор». І коли відправники спостерігають втрату пакетів, вони сповільнюють свою роботу. Тому, щоб визначити оптимальну швидкість передачі, потрібно немало часу.

4️⃣ Повторне використання з'єднань: Якщо з'єднання вже не потрібне, його можна просто повернути в пул, замість того, щоб закривати його. Це означає, що наступний клієнт, якому потрібне з'єднання, зможе швидко та ефективно його використати.

Статті про вітчизняний бізнес та цікавих людей:

  • Вітаємо з Різдвом Христовим!

    Друкарня та платформа WE.UA вітають всіх наших читачів та авторів зі світлим святом Різдва! Зичимо всім українцям довгожданого миру, міцного здоровʼя, злагоди, родинного затишку та втілення всього доброго і прекрасного, чого вам побажали колядники!

    Теми цього довгочиту:

    Різдво
  • Каблучки – прикраси, які варто купувати

    Ювелірні вироби – це не тільки спосіб витратити гроші, але і зробити вигідні інвестиції. Бо вартість ювелірних виробів з кожним роком тільки зростає. Тому купуючи стильні прикраси, ви вигідно вкладаєте кошти.

    Теми цього довгочиту:

    Як Вибрати Каблучку
  • П'ять помилок у виборі домашнього текстилю, які псують комфорт сну

    Навіть ідеальний матрац не компенсує дискомфорт, якщо текстиль підібрано неправильно. Постільна білизна безпосередньо впливає на терморегуляцію, стан шкіри та глибину сну. Більшість проблем виникає не через низьку якість виробів, а через вибір матеріалів та подальшу експлуатацію

    Теми цього довгочиту:

    Домашній Текстиль
  • Як знайти житло в Києві

    Переїжджаєте до Києва і шукаєте житло? Дізнайтеся, як орендувати чи купити квартиру, перевірити власника та знайти варіанти, про які зазвичай не говорять.

    Теми цього довгочиту:

    Агентство Нерухомості
  • Як заохотити дитину до читання?

    Як залучити до читання сучасну молодь - поради та факти. Користь читання для дітей - основні переваги. Розвиток дітей - це наше майбутнє.

    Теми цього довгочиту:

    Читання
Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Oleksandr Klymenko
Oleksandr Klymenko@overpathz

Java Software Engineer

7.5KПрочитань
1Автори
95Читачі
На Друкарні з 19 квітня

Більше від автора

Це також може зацікавити:

  • 🧠 Цікаві факти про toLowerCase в Java!

    Коли ми працюємо з рядками в Java, часто виникає потреба перетворити великі літери на малі. Для цього зазвичай використовують вбудовану функцію Character.toLowerCase(). Але чи знаєте ви, як можна реалізувати це самостійно?

    Теми цього довгочиту:

    Java
  • 50 онлайн книг для вивчення Java

    Ви готові розпочати подорож до володіння Java? Тоді увага – ми створили підбірку з 50 видатних онлайн-книг англійською, які допоможуть вам освоїти кожний аспект програмування на Java!

    Теми цього довгочиту:

    Java

Коментарі (0)

Підтримайте автора першим.
Напишіть коментар!

Це також може зацікавити:

  • 🧠 Цікаві факти про toLowerCase в Java!

    Коли ми працюємо з рядками в Java, часто виникає потреба перетворити великі літери на малі. Для цього зазвичай використовують вбудовану функцію Character.toLowerCase(). Але чи знаєте ви, як можна реалізувати це самостійно?

    Теми цього довгочиту:

    Java
  • 50 онлайн книг для вивчення Java

    Ви готові розпочати подорож до володіння Java? Тоді увага – ми створили підбірку з 50 видатних онлайн-книг англійською, які допоможуть вам освоїти кожний аспект програмування на Java!

    Теми цього довгочиту:

    Java