3 минуты, чтобы понять, что распространяется, микросервисы и кластеры!

Микросервисы сервер балансировки нагрузки DNS

Книга в конце статьи

об авторе

Чжан Чжипэн,Старший энтузиаст Java, глубоко вовлеченный в сферу онлайн-образования, личный блог: https://blog.52itstyle.com.

Примечание редактора

в предыдущей статье«Создать веб-сайт с нуля несложно! 》 Некоторые одноклассники оставили сообщение, надеясь поделиться специфическими знаниями о микросервисах и распределении, поэтому эта новая статья была «опубликована». Прежде чем читать эту статью, убедитесь, что у вас есть определенная сетевая база и вы умеете работать с Linux. Просмотр займет около 3-5 минут.

1. Распределенный  

Xiaoma управляет веб-сайтом онлайн-покупок под названием TT Mao, в котором есть такие модули, как управление товарами, управление заказами, управление пользователями, управление платежами, корзина покупок и т. д. Каждый модуль развернут на независимом хосте облачной службы.

Теперь программист Сяо Мин просматривает кота TT и хочет купить отличную механическую клавиатуру Cherry, чтобы повысить эффективность своей работы. Итак, он открыл домашнюю страницу TT cat, искал товары, просматривал детали и комментарии, добавлял товар в корзину, размещал заказ и оплатил ряд операций. Сяо Мин совершил покупку без проблем за один раз Конечно, он также потратил много денег.

Но как система выполняет эту серию операций, как показано в запутанной взаимосвязи вызова, как показано на рисунке ниже (некоторые детали сами по себе игнорируем). Пользователи не могут видеть или трогать, но весь процесс заказа проходит между сетями.

TT cat распределяет и развертывает все функциональные модули в разных местах, и наконец выполняет ряд запросов пользователей.Это, вероятно, распределенная система.

2. Микросервисы

Блогеры считают, что микросервисы — это архитектура, которая также входит в сферу распространения. Сколько стоит микро? В распределенных системах микросервисы уделяют больше внимания единой ответственности, облегченной связи (HTTP), независимости и изоляции процессов. Что ж, больше нечего сказать, практика приносит истинные знания, предлагаю вам больше узнать о микросервисных компонентах, связанных со Spring-Cloud.

TT cat, каждый год есть какие-то мероприятия, такие как День холостяков (Double 11), который является фаворитом девушек.Когда ночь тихая, большое количество пользователей мгновенно хлынет, и определенная услуга может быть сбита. вниз.

В это время приходит проблема, что пользователь оформляет заказ сверхурочно, либо возникает прямая ошибка 500. Как решить?

3. Кластер балансировки нагрузки

Как такое могло произойти на таком важном событии? На самом деле папа Ма заранее купил несколько серверов, а инженеры скопировали и развернули несколько копий каждого модуля бизнес-функции.

Каждый модуль с одинаковой функцией, они образуют группу и управляются в едином системном режиме. Когда девушка размещает заказ, она на самом деле имеет связь с кластерной группой, но система гарантирует, что она имеет связь только с одной из них.Кластерная группа имеет свой собственный алгоритм планирования, поэтому не беспокойтесь об этом. происходит с девушкой отношения.

Например, если вы живете в древние времена, вам 18 лет, вы не женаты, высоки ростом, богаты и красивы, вам необходимо срочно решать свои личные физиологические проблемы. Поэтому вы пришли в легендарный Фэнъюэчан, гм, это древнее время было законным. В это время к вам подойдет проститутка или большой чайник, если нет особой просьбы, вас отведут в комнату с запыленной женщиной...

Когда изменился стиль рисования, вы слепили своему программисту Wannian собачьи глаза из титанового сплава? Понять это можно так, проститутка — это балансировщик нагрузки со встроенным алгоритмом планирования, а девушка-пыльщица — одна из заданных групп.

Ладно, приступим к делу, многоточие определитесь сами, друзья могут тут спросить, а что мы используем в качестве балансировщиков нагрузки в продакшене?

  • Глубокий карман с оборудованием F5

  • Используйте балансировку нагрузки DNS за хорошие деньги

  • Умелое использование LVS

  • Трудолюбивые предприимчивые малые компании могут использовать только Nginx

Конечно, балансировщиков нагрузки существует больше, чем перечисленные выше, и заинтересованные студенты могут узнать о них в Google.

В статье "О знании и действии" сказано: Я знаю, что это такое и зачем это. Кратко расскажем о том, как эти балансировщики нагрузки ходят в сети. Друзья, изучавшие сеть, наверняка знают семислойную сеть модель.

Сначала картинка, пусть каждый ознакомится с базовыми курсами университета.

У вас есть ощущение мгновенной классной книги, но не вызывает привыкания? Еще одна пятиуровневая модель TCP/IP.

На каждом уровне работают разные устройства, например, F5, используемый государственными предприятиями с глубокими кошельками и хорошими деньгами, работает на слоях 4-7, LVS, используемый обычными интернет-компаниями, работает на транспортном уровне, а Nginx, который является наиболее распространенным используется, работает на прикладном уровне.

Наконец, давайте поговорим о балансировке нагрузки DNS.Хотя DNS является самым примитивным и самым простым методом, контроль балансировки нагрузки DNS находится в руках провайдера службы доменных имен.У NDS есть проблема многоуровневого разрешения, кэширования A записи, а сам веб-сайт не может вносить никаких изменений.много управления. В результате он редко используется малыми и средними компаниями.

Конечно, если ваши собственные силы достаточно сильны, балансировка нагрузки DNS также является хорошим выбором. Следующее изображение является частью информации, полученной путем обнаружения записи A доменного имени TT cat, которая предназначена только для справки и предназначена для самостоятельного понимания.

5. Кластер высокой доступности

Поскольку это кластер, не может быть единой точки отказа.Если вы обратите внимание на облачные сервисы, вы можете столкнуться со следующими терминами: «горячее резервное копирование с двумя машинами», «два места и три центра» и другими терминами. .

Горячее резервное копирование двух систем — это форма высокой доступности.Как показано на рисунке выше, у нас есть два узла балансировки нагрузки в производственной среде.Главный узел находится в активном состоянии, а другой узел находится в состоянии ожидания. и оперативно переключается на службу резервного копирования для обеспечения нормальной работы бизнеса.Что касается трех центров в двух местах, то следующая картинка может помочь всем понять подробнее, картинки взяты из интернета.

6. Эластичное облако

Чтобы подготовиться к Double Eleven, брат Сяо Ма приобрел большое количество серверов, но когда мероприятие закончилось, обычное количество посещений пользователей не соответствовало способности сервера принимать клиентов, что привело к большому количеству серверов в период пустого окна.

Это потрясающе, нельзя бездельничать, смелый братишка погладил себя по головке и сформировал облачную команду ТТ. За годы напряженной работы мы разработали такие продукты, как облако с оплатой по факту использования, эластичный IP-адрес и совместно используемая пропускная способность для малых и средних предприятий.

7. Отказоустойчивость

Сяо Мин почувствовал, что эта клавиатура хороша, поэтому с радостью нажал кнопку «Купить» и внезапно перепрыгнул на страницу входа.

Какого черта, я снял штаны, чтобы ты мог показать мне это? Обычные пользователи могут не почувствовать, что есть какая-то проблема, просто авторизуйтесь снова. Но как серьезный программист, Сяо Мин хотел выяснить, что происходит.

После тщательного анализа данных Сяомин пришел к следующим выводам:

Когда произошел вышеуказанный сбой, Сяо Мин подумал, что служба, в которой он разместил заказ, зависла, а запрос был передан в другую службу, но почему он перешел на страницу входа? Как программист, Сяо Мин четко знает, что сервисы делятся на сервисы с сохранением состояния и без сохранения состояния.Хотя наши обычные HTTP-запросы не имеют состояния, мы обычно используем файлы cookie или сеансы для определения статуса пользователя.

В этот момент судьи должны понять, что это за чертовщина. Возьмите Tomcat, с которым мы более знакомы, наша информация о пользователе обычно хранится в сеансе, а сеанс хранится в памяти Tomcat. Браузер аутентифицируется на сервере через JSESSIONID в файле cookie.

Однако сервер зависает, а запрос заказа распределяется по другому сервису.Естественно, Сяо Мин уже не может найти свою сессию.

Сяо Мин сообщил о проблеме в TT Cat. Брат Сяо Ма увидел, что все в порядке, и до кластера еще далеко, поэтому он поспешно позвонил инженерам, чтобы они предложили решение.

В итоге инженеры придумали два варианта:

  • Репликация состояния пользователя сервера (высокая стоимость, требует аппаратной и программной поддержки, задержки и риск сбоя)

  • Единое хранилище пользовательского статуса (я не говорю, я просто смеюсь)

В конечном итоге инженеры выбрали второй вариант, используя Redis для хранения данных о состоянии пользователя.

дополнение к знаниям

Недавно я связался и использовал балансировку нагрузки SLB Alibaba Cloud, и у меня есть общее представление о реализации балансировки нагрузки категории TT.Следующая архитектура является производной от категории TT.

Балансировка нагрузки использует кластерное развертывание, которое может реализовать синхронизацию сеансов, чтобы устранить единую точку отказа сервера, улучшить избыточность и обеспечить стабильность обслуживания. В настоящее время Alibaba Cloud предоставляет четырехуровневую (протокол TCP и протокол UDP) и семиуровневую (протокол HTTP и HTTPS) услуги балансировки нагрузки.

  • Четвертый уровень использует программное обеспечение с открытым исходным кодом LVS (Linux Virtual Server) + keepalived для достижения балансировки нагрузки.

  • Уровень 7 использует Tengine для балансировки нагрузки.

Как показано на рисунке ниже, балансировка нагрузки уровня 4 в каждом регионе фактически выполняется путем развертывания нескольких машин LVS в кластере LVS. Режим развертывания кластера в значительной степени обеспечивает доступность, стабильность и масштабируемость службы балансировки нагрузки в нештатных условиях.

Каждый LVS в кластере LVS будет проводить сеанс и синхронизироваться с другими машинами LVS в кластере с помощью многоадресных пакетов, тем самым реализуя синхронизацию сеансов между машинами в кластере LVS. Как показано на рисунке ниже, после того, как клиент передаст серверу три пакета данных, сеанс A, установленный на LVS1, начнет синхронизироваться с другими машинами LVS. Сплошная линия на рисунке представляет существующее соединение, а пунктирная линия на рисунке показывает, что когда LVS1 выйдет из строя или будет проходить техническое обслуживание, эта часть трафика пойдет на машину LVS2, которая может нормально работать. Таким образом, кластер балансировки нагрузки поддерживает горячие обновления и в максимальной степени прозрачен для пользователей во время сбоя компьютера и обслуживания кластера, не затрагивая пользовательские службы.

Не зависим? Более замечательная техническая галантерея

Все на станцию ​​Gdevops Guangzhou 2017!

24 ноября приглашаем вас принять участие в грандиозном событии

Книги приходят

Оставьте свои идеи и идеи, которые находят отклик в области комментариев учетной записи подписки WeChat (dbaplus) этой статьи, исуществуетНа следующий день после публикации этой статьи12 часов дня статьТот, у кого больше всего лайков, вы можете получить одну из следующих хороших книг~

Особая благодарность Bowen Viewpoint за спонсорство книги для мероприятия.

Последние горячие статьи:

Ограничено двумя часами! Экстренная оптимизация SQL, вызванная набором типов привилегий

Предварительное исследование создания распределенного приложения для обработки данных в реальном времени на основе Storm

Нетрудно создать веб-сайт с нуля, если понимать эволюцию этой архитектуры!

Как распределить хранилище по степени холодных и горячих данных, чтобы сделать HDFS более эффективным?

Ctrip Ticket Эксплуатация и обслуживание кластера ElasticSearch Укрощение

Это открывает дверь в новый мир