Скануйте, щоб завантажити додаток Gate
qrCode
Більше варіантів завантаження
Не нагадувати сьогодні

Системна дистрибуція: невидимий каркас Інтернету та Блокчейн

Ти знаєш? Ти зараз використовуєш мережу, Блокчейн, хмарні послуги, за якими стоїть одна й та ж логіка — системи розподілені. Простими словами, це означає, що велике завдання розділяється між кількома комп'ютерами, які працюють одночасно, а потім вони спілкуються між собою, щоб досягти мети. Здається, не складно, але ця річ підтримує цілий Інтернет.

Що таке розподілена система?

Уявіть, що вам потрібно обробити 10 мільярдів транзакційних даних. Один комп'ютер буде працювати до ста років. Але якщо ви розділите дані на 100 частин і дасте 100 комп'ютерам обробляти їх одночасно, ви завершите за 1/100 часу. Це і є основна логіка розподіленого оброблення — паралельна обробка, розподіл навантаження.

Система розподілена включає три ключові частини:

1. Кілька незалежних вузлів

Кожен комп'ютер є вузлом, може працювати незалежно, а також співпрацювати один з одним. Як у вулику, кожна бджола має своє завдання, але тісно співпрацює.

2. Мережевий комунікаційний рівень

Інформація передається між вузлами через мережеві протоколи (TCP/IP, HTTP тощо). Це ключове — якщо виникнуть проблеми з комунікацією, вся система може вийти з ладу.

3. Проміжне програмне забезпечення

Відповідальний за координацію роботи різних вузлів, щоб забезпечити їхню узгодженість.

Чому всі використовують дистрибуцію?

Переваги вражають:

  • Висока продуктивність: кілька комп'ютерів працюють, швидкість така, що летить
  • Сильна стійкість до помилок: якщо один комп'ютер виходить з ладу, інші продовжують працювати, система не зламається.
  • Масштабованість: Багато користувачів? Додайте комп'ютер, не потрібно все перебудовувати.
  • Висока доступність: 7×24 безперервне обслуговування

Наприклад, у мережі біткоїн тисячі вузлів по всьому світу одночасно верифікують транзакції, і жоден окремий вузол не може вплинути на всю мережу. Це і є розподілена стійкість.

Але недоліки також очевидні:

  • Складнощі координації: кілька вузлів повинні синхронізувати інформацію, що може призвести до несумісності даних
  • Висока складність: величезні витрати на проектування та обслуговування, потрібні спеціалізовані кадри
  • Ризик мертвого блоку: під час конкуренції за ресурси між кількома процесами вони можуть легко взаємно очікувати один на одного, що призводить до застрягання.

Які розподілені системи існують у реальному житті?

Блокчейн (кінцева розподілена)

Всі функції, які ви хочете, є у нього — децентралізований, високий рівень безпеки, захист від підробок. Рахунок розподілений по глобальних вузлах, кожен вузол має повну копію, зловмиснику потрібно атакувати понад 51% вузлів, щоб обманути, вартість безмежно висока.

Пошукова система

Google використовує тисячі розподілених серверів для збору веб-сторінок, створення індексів і обробки запитів. У момент вашого пошуку в бекенді можуть бути залучені 100 комп'ютерів.

Соціальна медіаплатформа

Дані користувачів Facebook і Twitter розподілені по різних дата-центрах по всьому світу, якщо один виходить з ладу, інші продовжують працювати.

Хмарні обчислення

AWS, Azure є розподіленими. Твій хмарний сервер насправді є віртуальною машиною в якому-небудь дата-центрі, де працює розподілене зберігання та обчислення.

Які типи розподілених систем існують?

1. Клієнт-серверна модель

Ваш браузер є клієнтом, а сервер веб-сайту є сервером. Найпоширеніша архітектура.

2. P2P рівневий мереж

Кожен вузол є як клієнтом, так і сервером. Завантаження через BitTorrent, зберігання через IPFS використовують цю модель. Без централізованого сервера, теоретично важче контролювати.

3. Розподілена база даних

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

4. Змішаний

Поєднання різних архітектур. Наприклад, деякі Web3 проекти використовують P2P для зберігання даних, а також модель клієнт-сервер для надання інтерфейсу запитів.

Основні характеристики, які ти повинен зрозуміти

Паралельність

Кілька завдань виконуються одночасно. Перевага в тому, що ефективність висока, недолік в тому, що легко можуть виникнути умови змагання (race condition) і мертві блокування.

Масштабованість

Додавши вузли, можна лінійно підвищити продуктивність (в ідеальному випадку). На практиці можуть виникнути мережеві вузькі місця.

Стійкість до помилок

Деякі збої не призводять до повного збоїв системи. Це досягається через надмірність, резервне копіювання та автоматичне переключення.

Послідовність даних

Це найскладніше. Як забезпечити узгодженість усіх копій, коли кілька вузлів одночасно змінюють дані? Блокчейн вирішує цю проблему за допомогою доказу роботи, а розподілена база даних - за допомогою двофазної комітету або остаточної узгодженості.

Прозорість

Користувач не відчуває, що система є розподіленою, як ніби використовує один комп'ютер. Це потребує ретельного дизайну.

Майбутні тренди

Кластерні обчислення стають все дешевшими, обробка великих даних, навчання ШІ переходять до розподілених рішень. Периферійні обчислення наближають обчислення до користувача, знижуючи затримки. Хмарна нативна архітектура полегшує розгортання та управління розподіленими системами.

Гранична лінія: розподілені системи вже не майбутнє, а теперішнє. Від того, як ти користуєшся телефоном, до видобутку Блокчейн, розподілене все ще тихо підтримує. Зрозуміти його - означає зрозуміти суть Інтернету.

BTC0.42%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • Прокоментувати
  • Репост
  • Поділіться
Прокоментувати
0/400
Немає коментарів
  • Закріпити