Друкарня від 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️⃣ Повторне використання з'єднань: Якщо з'єднання вже не потрібне, його можна просто повернути в пул, замість того, щоб закривати його. Це означає, що наступний клієнт, якому потрібне з'єднання, зможе швидко та ефективно його використати.

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

  • Як побудована програма Meest China Academy

    Курс про товарний бізнес охоплює різні етапи роботи: від пошуку ідеї до перевірки товару, логістики та масштабування. Програма Meest China Academy містить 17 модулів, які послідовно розкривають ці теми без зведення всього навчання до однієї універсальної поради.

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

    Meest
  • Які технології використані в Айфон 17

    Айфон 17 поєднує OLED-дисплей із частотою до 120 Гц, чип A19, дві камери Fusion 48 Мп і швидке заряджання через USB-C. У COMFY можна купити Айфон 17 з накопичувачем на 256 або 512 ГБ, вибравши конфігурацію відповідно до обсягу фото, відео та застосунків

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

    Iphone 17
  • Як вибрати вживаний iPhone: коротке керівництво для розумної покупки

    Вторинний ринок смартфонів Apple активно зростає, і питання, як вибрати вживаний iPhone, стає актуальним для дедалі більшої кількості користувачів. Правильний підхід дозволяє отримати бу iPhone з актуальною iOS і доброю камерою за помітно нижчу ціну, ніж у нових пристроїв.

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

    Iphone
  • Як подолати жіночу безплідність за допомогою донорських яйцеклітин

    Діагноз "безпліддя" рідко звучить як вирок одразу. Для багатьох жінок саме в цей момент вперше звучить словосполучення "донорські яйцеклітини" — і це часто не кінець шляху до материнства, а якраз новий, реальний шанс.

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

    Донорство
  • Як заспокоїти зубний біль і чому самолікування може призвести до операції?

    Раптовий біль у зубі може призвести до порушення сну та ускладненого вживання їжі. Люди часто приймають таблетки, роблять полоскання або лікуються народними засобами. В таких випадках не варто відкладати візит до стоматолога, адже можуть з’явитись ускладнення.

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

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

Java Software Engineer

40Довгочити
9.4KПерегляди
104Підписники
На Друкарні з 19 квітня 2023

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

  • Java Memory Model ↔ PostgreSQL MVCC: один і той самий фундамент конкурентності

    Java Memory Model та PostgreSQL MVCC/Isolation Levels — це дві відповіді на одне й те саме фундаментальне питання: за яких умов зміна, зроблена одним учасником (потоком / транзакцією), стає видимою для іншого?

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

    Java
  • Як виконується SQL-запит

    Сьогодні розберемо, що відбувається з вашим SELECT * FROM users WHERE age > 21 перед тим, як БД поверне вам дані

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

    Computer Science

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

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

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

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