Полная коллекция сленга серверной разработки, заходите и выравнивайте детализацию!
Полная коллекция сленга серверной разработки, заходите и выравнивайте детализацию!

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

01. Разработка системы

1.1 Высокая связность/низкая связанность

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

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

1.2 Чрезмерный дизайн

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

1.3 Преждевременная оптимизация

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

Правильный метод — сначала качественно реализовать ваши требования, написать достаточное количество тестовых примеров, а затем профилировать, чтобы найти узкие места в производительности, и только потом заниматься оптимизацией.

1.4 Рефакторинг

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

1.5 Эффект разбитого окна

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

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

1.6 Принцип взаимного недоверия

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

1.7 Настойчивость

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

1.8 Критический раздел

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

1.9 Блокировка/неблокировка

Блокировка и неблокировка обычно описывают взаимодействие между несколькими потоками. Например, если поток занимает ресурс критического раздела, то все остальные потоки, которым нужен этот ресурс, должны ожидать в этом критическом разделе. Ожидание приведет к зависанию потока. Эта ситуация блокирует. В это время, если поток, занимающий ресурс, не желает его освобождать, то все остальные потоки, заблокированные в этом критическом разделе, не смогут работать. Неблокировка позволяет нескольким потокам одновременно войти в критическую секцию.

1.10 Синхронный/Асинхронный

Обычно синхронные и асинхронные относятся к аспекту вызова функции/метода.

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

1.11 Параллелизм/параллелизм

  • Параллельность означает, что несколько инструкций выполняются одновременно на нескольких процессорах одновременно. Таким образом, как с микро-, так и с макро-перспективы, оба выполняются вместе.
  • Параллелизм означает, что одновременно может выполняться только одна инструкция, но несколько инструкций процесса выполняются с быстрой ротацией, что с точки зрения макроса приводит к одновременному выполнению нескольких процессов. Однако с микроперспективы это так. не выполняются одновременно. Разделите время на несколько сегментов, чтобы несколько процессов могли выполняться быстро и попеременно.

02. Архитектурное проектирование

2.1 Высокий параллелизм

В связи с появлением распределенных систем под высоким параллелизмом (High Concurrency) обычно понимают обеспечение того, что система может обрабатывать множество запросов параллельно одновременно посредством проектирования. С точки зрения непрофессионала, высокий уровень параллелизма означает, что в один и тот же момент времени многие пользователи одновременно получают доступ к одному и тому же интерфейсу API или URL-адресу. Это часто происходит в бизнес-сценариях с большим количеством активных пользователей и высокой концентрацией пользователей.

2.2 Высокая доступность

Высокая доступность HA (High Availability) — один из факторов, который необходимо учитывать при проектировании архитектуры распределенной системы. Обычно это означает, что система специально разработана для сокращения времени простоя при сохранении высокой степени доступности ее сервисов.

2.3 Разделение чтения и письма

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

2.4 Холодный/горячий резерв

  • Холодный резерв: два блока Служить,один бежит,Одно устройство не работает в качестве резервного. Таким образом, как только вы запустите из Служить просто Времяя,Просто запустите резервную копию из Служить. Решение холодного резервирования относительно легко внедрить.,Однако недостатком холодного резерва является то, что резервный компьютер не возьмет на себя управление автоматически в случае сбоя хоста.,Нужно активно переключать Служить.
  • Горячий резерв: широко известный как active/standby Таким образом, данные сервера, включая данные базы данных, записываются на два сервера и несколько серверов одновременно. когда active В случае сбоя устройства используйте программную диагностику (обычно с помощью диагностики пульса), чтобы standby Машинная активация гарантирует, что приложение полностью вернется к нормальному использованию в течение короткого периода времени. Когда служить машину Время После простоя он автоматически переключится на другую резервную машину для использования.

2.5 Живите больше в разных местах

Мультиактивность в разных местах обычно подразумевает создание независимых центров обработки данных в разных городах. «Живое» сравнивают с холодным резервным копированием. Холодное резервное копирование предназначено для резервного копирования всего объема данных и не поддерживает бизнес-потребности в обычное время. будет использоваться только в случае сбоя в компьютерном зале. Переключение на резервный компьютерный зал и активный режим работы означает, что эти компьютерные залы также должны обрабатывать трафик и обеспечивать поддержку бизнеса в повседневной деятельности.

2.6 Баланс нагрузки

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

2.7 Разделение динамического и статического

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

2.8 Кластер

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

2.9 Распределенный

Распределенная система состоит из множества независимых подсистем в соответствии с бизнес-функциями. Каждая подсистема называется «службой». Распределенная система сортирует и распределяет запросы по разным подсистемам, позволяя различным пользователям служб обрабатывать разные запросы. В распределенной системе подсистемы работают независимо и соединяются через сетевую связь для обеспечения совместимости данных и комплексных услуг.

2.10 Теория CAP

Теория CAP исходит из того факта, что в распределенной системе согласованность, доступность и устойчивость к разделению не могут быть установлены одновременно.

  • Последовательность: требуется, чтобы в один и тот же момент времени,Все резервные копии данных одинаковы и находятся в одном и том же состоянии.
  • Доступность: После того как системакластер станет частью узла Время простоя, система по-прежнему сможет корректно реагировать на запросы пользователей.
  • Отказоустойчивость раздела: система способна выдерживать сбои сетевой связи между узлами.

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

В распределенных системах мы часто стремимся к доступности, которая более важна, чем согласованность. Итак, вот еще одна теория о том, как добиться высокой доступности, — теория BASE, которая еще больше расширяет теорию CAP.

2.11 БАЗОВАЯ теория

Теория BASE утверждает:

  • В принципе доступен;
  • Мягкое состояние;
  • В конечном итоге соответствует.

Теория BASE — это результат компромисса между согласованностью и доступностью в CAP. Основная идея теории такова: мы не можем добиться строгой согласованности, но каждое приложение может применять соответствующие методы, основанные на его собственных бизнес-характеристиках, для создания системы. добиться окончательной согласованности.

2.12 Горизонтальное/вертикальное расширение

  • Горизонтальное расширение Scale Out распределяет нагрузку за счет добавления большего количества экземпляров или программ.,Тем самым улучшая емкость хранилища и вычислительную мощность.
  • Вертикальное расширение Scale Up улучшает вычислительные возможности одной машины.

Есть два способа вертикального расширения:

  1. Повысьте производительность автономного оборудования, например: увеличьте CPU Количество ядер примерно 32, обновите сетевую карту до более качественной, например 10G, обновите до более качественного жесткого диска, например SSD, увеличьте емкость жесткого диска, например 2T,расширениесистема Память, такая как128G;
  2. Повысьте производительность автономного программного обеспечения или архитектуры, например: используйте Cache уменьшить IO частота,Используйте асинхронность для увеличения пропускной способности на единицу,Использование структур данных без блокировки сокращает время отклика;

2.13 Параллельное расширение

Аналогично горизонтальному масштабированию. Все узлы на сервере кластера являются параллельными одноранговыми узлами. При необходимости расширения можно добавить дополнительные узлы для улучшения возможностей обслуживания кластера. Вообще говоря, критические пути на сервере (такие как вход в систему, оплата, основная бизнес-логика и т. д.) на сервере должны поддерживать динамическое параллельное расширение во время выполнения.

2.14 Гибкое расширение

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

2.15 Синхронизация состояния/синхронизация кадров

Синхронизация статуса:Синхронизация состояний относится к Служить Процессор отвечает за расчет всехиз Логика игры,И транслировать эти результаты вычислений,Клиент несет ответственность только за отправку операций игрока.,А также производительность, полученная по результатам игры.

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

Синхронизация кадров:Служить Клиент только пересылает сообщения,Никакая логическая обработка не выполняется.,Количество кадров в секунду одинаково для каждого клиента,Одни и те же входные данные обрабатываются в каждом кадре.

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

03. Сетевое общение

3.1 Пул соединений

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

3.2 Отключение и повторное подключение

Из-за колебаний сети пользователи периодически отключаются от сервера. После восстановления сети сервер пытается подключить пользователя к состоянию и данным на момент последнего отключения.

3.3 Сохранение сеанса

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

3.4 Длинное соединение/короткое соединение

Обычно относится к длинному соединению и короткому соединению TCP. Длинное соединение означает, что после установки TCP-соединения соединение поддерживается. Как правило, в середине выполняются множественные передачи бизнес-данных, и соединение обычно неактивно. отключен. Короткие соединения обычно подразумевают установление соединения, выполнение транзакции (например, HTTP-запроса) и последующее закрытие соединения.

3.5 Управление потоком/контроль перегрузки

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

3.6 Эффект грохота стада

Эффект громового стада также называют эффектом громовой группы, но как он называется? Короче говоря, феномен громового стада — это когда несколько процессов (несколько потоков) блокируются и ожидают одного и того же события одновременно (состояние сна). Если произойдет ожидающее событие, оно разбудит все ожидающие процессы ( или поток), но в конечном итоге только один процесс (поток) может получить «управление» в это время и обработать событие, в то время как другие процессы (потоки) не могут получить «управление» и могут только повторно войти в состояние сна. явление и растрата производительности называется громовым стадом.

3.7 NAT

NAT (преобразование сетевых адресов) заменяет информацию об адресе в заголовке IP-пакета. NAT обычно развертывается на выходе из сети организации, чтобы обеспечить доступность общедоступной сети и подключение протоколов верхнего уровня путем замены IP-адреса внутренней сети выходным IP-адресом.

04. Аномальная неисправность

4.1 Время простоя

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

4.2 coredump

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

4.3 Проникновение кэша/взлом/лавина

  • Проникновение в кэш. Проникновение в кэш означает запрос данных, которые не должны существовать. Поскольку кэш не попадает, их необходимо запросить из базы данных. Если данные не могут быть найдены, они не будут записаны в кэш. несуществующие данные извлекаются каждый раз при выполнении запроса. Вам приходится обращаться к базе данных для запроса, что создает нагрузку на базу данных.
  • Поломка кеша. Поломка кеша означает, что срок действия ключа точки доступа истекает в определенный момент времени, и в этот момент времени существует большое количество одновременных запросов на этот ключ, поэтому большое количество запросов попадает в базу данных.
  • Лавина кэша. Лавина кэша означает истечение срока действия большого объема данных в кэше и огромного объема данных запросов, что приводит к чрезмерной нагрузке на базу данных или даже к выходу из строя компьютера.
  • Отличие от пробой кэша состоит в том, что пробой кэша — это выход из строя ключей хотспота, а лавина кэша — это выход из строя большого количества ключей одновременно.

4.4 500/501/502/503/504/505

  • 500 Internal Server Error:внутренний Служитьошибка,Обычно устройство «Служить» попадает в непредвиденную ситуацию.,и не может быть завершенопросить.Возможные причины:
    1. Ошибки программы, например: ASP или PHP Грамматические ошибки;
    2. Высокий Из-за параллелизма ограничение ресурсов системы не может открыть слишком много файлов.
  • 501Not реализовано: Сервер Служить не понимает или не поддерживает запрос из HTTP просить.
  • 502Bad Gateway:WEB Служить сбой сервера может быть из-за недостаточного программного процесса. Запрос изphp-fpm был выполнен, но по каким-то причинам не был завершен, что в конечном итоге приводит к . php-fpm процесс завершен。Возможные причины:
    1. Nginx Служитьустройство,php-cgi Количество процессов недостаточно;
    2. Выполнение PHP занимает слишком много времени;
    3. php-cgi Процесс умирает;
  • 503Сервис недоступен: сервер в настоящее время недоступен. Система Сервер обслуживания временно не может обрабатывать клиентские запросы. Это временное состояние. Вы можете связаться с провайдером Служить.
  • 504Gateway Тайм-аут: Ошибка сервера 504 указывает на тайм-аут, что означает, что запрос, отправленный клиентом, не достигает шлюза, и запрос не может быть выполнен. php-fpm, обычно с nginx.conf связанные с конфигурацией.
  • 505HTTP Version Not Поддерживается: сервер Служить не поддерживает из, используемый в запросе. HTTP Версия протокола. (HTTP версия не поддерживается)

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

4.5 Переполнение/утечка памяти

  • Переполнение памяти: Переполнение памяти (Out Of Память) означает, что когда программа обращается к памяти, заявителю не хватает памяти для использования. Это означает, что вам предоставляется кусок памяти. int типа место для хранения данных, но вы храните long наберите данные, то в результате памяти не хватит и будет выдано сообщение об ошибке. ООМ, так называемое переполнение памяти.
  • Утечка памяти: Утечка памяти (Память Leak) означает, что куча памяти была выделена в программе динамически и не может быть освобождена по какой-либо причине.,Вызывает потерю памяти,Это может привести к серьезным последствиям, таким как замедление скорости работы программы или даже ее сбой.

4.6 Ручка утечки

Утечка дескриптора происходит, когда процессу не удается освободить дескриптор открытого файла после вызова системного файла. Общее явление после утечки дескриптора заключается в том, что компьютер замедляется, ЦП перегружается, а загрузка ЦП cgi или сервера, на котором происходит утечка дескриптора, увеличивается.

4.7 Тупик

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

4.8 Мягкое прерывание/жесткое прерывание

  • Жесткое прерывание. То, что мы обычно называем прерыванием, относится к жесткому прерыванию (hardirq). Подключившись к системе периферийных устройств (например, сетевых карт、жесткий диск) автоматически генерирует из. В основном он используется для уведомления операций об изменениях периферического статуса.
  • Мягкое прерывание: обычно программа «Служить» прерывает работу ядра для удовлетворения требований системы реального времени;,Обработка прерываний должна быть максимально быстрой.

Чтобы реализовать эту возможность, Linux использует жесткие прерывания для обработки задач, которые могут быть выполнены за короткое время при возникновении прерывания, а задачи, требующие длительного времени для обработки событий, завершаются после прерывания, то есть мягкие прерывания (softirq ).

4.9 Берр

В краткий момент показатели производительности сервера (такие как трафик, дисковые операции ввода-вывода, загрузка ЦП и т. д.) намного превышают период до и после этого момента. Появление глюков означает, что ресурсы сервера используются неравномерно и недостаточно, что легко может привести к другим, более серьезным проблемам.

4.10 Повторная атака

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

4.11 Сетевые острова

Сетевой остров — это ситуация в кластерной среде, когда некоторые машины теряют сетевое соединение со всем кластером, разделяются на небольшой кластер и возникает несогласованность данных.

4.12 Несовпадение данных

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

4.13 Разделенный мозг

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

05. Мониторинг и тревога

5.1 Мониторинг услуг

Основная цель мониторинга обслуживания — точно и быстро обнаружить, когда возникает или может возникнуть проблема с обслуживанием, чтобы уменьшить масштаб воздействия. Вообще существует множество методов мониторинга сервисов, которые можно разделить на уровни:

  • системаслой(CPU、состояние сети、IO、Загрузка машины и т. д.);
  • Уровень приложения (состояние процесса, журнал ошибок, пропускная способность и т. д.);
  • Бизнес-уровень (Служить/интерфейс из кода ошибки, времени ответа);
  • Пользовательский уровень (поведение пользователей, мониторинг общественного мнения, отслеживание внешнего интерфейса).

5.2 Полноканальный мониторинг

  • Служить Dial Test: Служить Dial Test — это метод мониторинга для определения доступности Служить (приложения) из,Периодически обнаруживать цель Служить посредством набора тестовых узлов.,В основном измеряется доступностью и временем ответа,Обычно в разных местах имеется несколько узлов проверки набора номера.
  • Обнаружение узлов: Обнаружение узлов — это метод мониторинга, используемый для обнаружения и отслеживания доступности и бесперебойности сети между узлами в разных компьютерных залах (центрах обработки данных). Обычно он измеряется временем отклика, скоростью потери пакетов и количеством переходов. ping, mtr или другой собственный протокол.
  • Фильтрация сигналов тревоги: фильтрация определенных предсказуемых сигналов тревоги, чтобы исключить данные из статистики сигналов тревоги, например, вызванных небольшим количеством посещений сканера. http ответ500ошибка,бизнессистема Индивидуальная информация об исключениях и т. д.。
  • Дедупликация сигналов тревоги: когда ответственное лицо уведомляется о сигнале тревоги, тот же сигнал тревоги не будет получен снова до тех пор, пока сигнал тревоги не будет восстановлен.
  • Подавление сигналов тревоги: Чтобы уменьшить помехи, вызванные джиттером,Также необходимо реализовать подавление,Например, Служить мгновенную высокую нагрузку.,Может быть, это нормально,Серьезно нужно относиться только к высоким нагрузкам, продолжающимся в течение определенного периода времени.
  • Восстановление сигналов тревоги: разработки/Персонал эксплуатации и технического обслуживания должен получать не только уведомления о сигналах тревоги, но также уведомления об устранении неисправностей и восстановлении сигналов тревоги.
  • Объединение сигналов тревоги: объединение нескольких одинаковых сигналов тревоги, сгенерированных одновременно.,Например, если одновременно появляется несколько микро-Служитькластер с несколькими субмикро-Служитькластер с высокой нагрузкой из-за тревог,,Нужно объединить в одну сигнализацию.
  • Конвергенция сигналов тревоги: иногда при возникновении сигнала тревоги,Часто сопровождается другими сигналами тревоги. В настоящее время вы можете генерировать сигнал тревоги только по основной причине.,Другие сигналы тревоги объединяются в подсигналы тревоги, и уведомления отправляются вместе.。Руюнь Служитьустройство Появляться CPU Аварийные сигналы нагрузки часто сопровождаются аварийными сигналами доступности для всех установок.
  • Самостоятельное устранение неисправностей: обнаружение аварийных сигналов в режиме реального времени.,Преддиагностический анализ,Сбой автоматического восстановления,И откройте прилегающие территории, чтобы добиться замкнутого цикла всего процесса.

06. Управление услугами

6.1 Микросервисы

Микросервисная архитектура — это архитектурный шаблон, который предлагает разделить одно приложение на набор небольших сервисов. Сервисы координируются и взаимодействуют друг с другом, чтобы обеспечить максимальную ценность для пользователей. Каждая служба работает в своем собственном независимом процессе, и службы взаимодействуют друг с другом с использованием облегченного механизма связи (обычно Restful API на основе http). Каждая служба построена вокруг конкретного бизнеса и может быть независимо развернута в производственной среде, подобно производственной). окружающая среда и т. д.

6.2 Обнаружение службы

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

6.3 Сокращение пикового трафика

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

Совместим с версией 6.4.

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

6.5 Защита от перегрузки

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

6.6 Сервисный автоматический выключатель

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

6.7 Понижение уровня обслуживания

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

  • По методу Служить: вы можете отказаться от приема Служить.,Возможна задержка Служить,Бывают также случаи, когда случайно можно Служить.
  • По объему Служить: определенную функцию можно отключить.,Некоторые модули также можно отрезать.

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

6.8 Автоматический выключатель или понижение версии

  • Сходства: Та же цель.,Все основано на доступности и надежности,Чтобы предотвратить сбой системы, пользовательский опыт аналогичен;,В конечном итоге пользователи сталкиваются с тем, что некоторые функции временно недоступны;
  • Разница: разные причины срабатывания,Служить Предохранитель обычно вызывается определенным сбоем в работе Служить (нисходящий Служить).,и Служить Понизить Версия вообще считается от общей нагрузки.

6.9 Ограничение рабочего тока

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

6.10 Маскирование неисправностей

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

07. Метод испытания

7.1 Тестирование черного/белого ящика

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

Тестирование белого ящика в основном используется на этапе модульного тестирования, в основном для тестирования на уровне кода. Для внутренней логической структуры программы методы тестирования включают в себя: покрытие операторов, покрытие оценок, покрытие условий, покрытие путей и покрытие комбинаций условий. .

7.2 Модульное/интеграционное/системное/приемочное тестирование

Тестирование программного обеспечения обычно делится на четыре этапа: модульное тестирование, интеграционное тестирование, системное тестирование и приемочное тестирование.

  • Модульное тестирование. Модульное тестирование — это проверка и проверка наименьшего проверяемого модуля программного обеспечения.,Например, модуль, процесс, метод и т. д. Юнит-тест имеет наименьшую детализацию,Как правило, подход «белого ящика» используется командой разработчиков для тестирования.,Главный вопрос заключается в том, соответствует ли агрегат «дизайну».
  • Интеграционный тест: Интеграционный тест также называется тестом сборки.,Обычно на основе модульного тестирования,Все программные модули упорядочены и инкрементированы. Интегрированный тест ограничен между модулями и системойтест.,Действуйте как «мост»,Как правило, команда развития применяет к тестированию подход «белый ящик плюс черный ящик».,Проверьте «дизайн»,Также проверьте «потребности».
  • систематест:систематест будет интегрирован через программное обеспечение для тестирования.,В составе компьютерной системыиз,Комбинировать с другими частями системы,Провести серию строгих и эффективных испытаний в реальной операционной среде.,Для обнаружения потенциальных проблем с программным обеспечением,Обеспечить нормальную работу системиз. систематестиз Наибольший размер частиц,Обычно независимая команда применяет подход «черного ящика».,Главным образом тестсистема соответствует ли она «Требованиям».
  • Приемочный тест: Приемочный тест также называют тестом на поставку.,Он основан на потребностях пользователей и бизнес-процессах.,Определить, соответствует ли система критериям приемки.,Решение о принятии системы принимается пользователем, клиентом и другими уполномоченными органами. Приемочные испытания аналогичны системным испытаниям.,Основное отличие в том, что персонал другой.,Приемочные испытания проводит пользователь.

7.3 Регрессионное тестирование

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

7.4 Испытание на дым

Этот термин пришел из аппаратной промышленности. После внесения изменений или ремонта аппаратного обеспечения или аппаратных компонентов подайте питание непосредственно на устройство. Если дыма нет, компонент выдерживает испытание. В программном обеспечении термин «дымовое тестирование» описывает процесс проверки изменений кода перед их внедрением в дерево исходного кода продукта.

Дымовое тестирование — это стратегия быстрой проверки базовых функций пакетов версий программного обеспечения в процессе разработки программного обеспечения. Это средство подтверждения и проверки основных функций программного обеспечения, а не углубленное тестирование пакета версии программного обеспечения.

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

7.5 Тестирование производительности

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

  • по нагрузке,Определить производительность при различных рабочих нагрузках,Целью является тестирование при постепенном увеличении нагрузки.,система Изменение различных показателей эффективности.
  • Стресс-тест определяется путем выявления узкого места системы или неприемлемой точки производительности.,Чтобы получить систему можно обеспечить максимальный уровень Служить итест.

7.6 Сравнительное тестирование

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

7.7 A/B-тестирование

A/B-тестирование заключается в сравнении двух или более групп случайно выбранных образцов с одинаковым количеством. Если экспериментальные результаты экспериментальной группы и группы сравнения статистически значимы по целевым показателям, это может означать, что особенности экспериментальной группы могут привести к результаты, которые вы хотите, помогая вам проверить гипотезы или принять решения по продукту.

7.8 Тестирование покрытия кода

Покрытие кода — это измерение при тестировании программного обеспечения, которое описывает долю и объем исходного кода в тестируемой программе. Полученная пропорция называется покрытием кода. При модульном тестировании покрытие кода часто используется в качестве индикатора качества тестирования. Покрытие кода даже используется для оценки выполнения тестовых задач. Например, покрытие кода должно достигать 80% или 90%. В результате тестировщики приложили немало усилий для разработки кода покрытия случаев.

08. Развертывание релиза

8.1 DEV/PRO/FAT/UAT

  • DEV(Development environment):развиватьсреда,Для отладки и использования техническим персоналом,Версия сильно меняется.
  • FAT (среда приемочного тестирования функций): среда функционального приемочного тестирования, используемая для тестирования тестировщиками программного обеспечения.
  • UAT (среда пользовательского приемочного тестирования): среда пользовательского приемочного тестирования, используемая для функциональной проверки в производственной среде и может использоваться в качестве среды предварительной версии.
  • PRO (Производственная среда): производственная среда, формальная онлайн-среда.

8.2 Выпуск в оттенках серого

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

8.3 Откат

Это относится к восстановлению программы или данных до последнего правильного состояния (или предыдущей стабильной версии) при возникновении ошибки программы или обработки данных.

Предварительный просмотр прямой трансляции на этой неделе:

Как решить проблему групповой тревожности среди программистов?

-End-

Оригинальный автор | Лу Чжо

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose