Теория управления услугами (1)

задняя часть Архитектура MySQL SQL
Теория управления услугами (1)

0. Главный герой истории

крякатьЭто интернет-финансовая компания. В основном занимается ссудой наличными, финансовым управлением p2p, потребительским бизнесом в рассрочку.

В компании работает 800 техников, и система чрезвычайно сложна. Она может стабильно обрабатывать заказы около 25 Вт каждый день. Когда происходит паническая покупка, пиковый QPS (запрос в секунду) системы достигает 3 Вт.

Несмотря на сложность системы, под руководством технологического лидера Brother C надежность услуги достигает 99,99%, а технические достижения хорошо известны в отрасли.

Нет, брат С. приглашен принять участие во Всемирной интернет-конференции 2022 года.

Меня зовут Ван Сяоу, главный технический редактор. Давайте возьмем интервью у брата С. Если у вас есть какие-либо вопросы, вы также можете обратить внимание на мою колонку и оставить сообщение~

1. Начальный этап системы шарлатанской музыки

Сяо Ву: Привет, брат С, многие пользователи сети интересуются эволюцией системы компании, можешь рассказать нам об этом?

Брат С. гордо улыбнулся: Хорошо, позвольте мне кратко представить это.

В первые дни существования Guquale это была малоизвестная небольшая компания, в которой было всего 6 технических специалистов, в основном занятых в сфере потребительских рассрочек.Система основана на инфраструктуре, построенной LNMP, а фреймворк использует ThinkPhp.

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

Вначале функции относительно просты, поэтому эта архитектура может соответствовать требованиям, и все функции разрабатываются в проекте Git.

Эти функции абстрагированы и могут быть представлены диаграммой:

image_1c4op458s17dnc3a1t7f1r3g1gfg9.png-23.4kB


Сяову: Да, начинающие компании в основном имеют такую ​​техническую структуру, которая проста и практична, отвечает потребностям быстрой итерации и функциональной ориентации.

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


2. Один час простоя

image_1c4ou6cv0l5an211ht71392rfnm.png-208.3kB


Сяо Ву: О? Почему ты не можешь это сделать? Брат С улыбнулся: Когда машина выйдет из строя, ты узнаешь, ха-ха.


Сяову: Ха-ха, тогда брат С, расскажи нам об этом, всем не терпится это услышать.

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

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

Далее еще раз проверили PHP, процесс PHP тоже в норме, утечек памяти и других проблем нет.

Остальное - проверить Mysql. На первый взгляд это не имеет значения. Оказывается, Mysql действительно лажает, а загрузка процессора составляет почти 100%...

Итак, мы быстро приостановили службу Mysql.

При запросе медленного журнала Sql выясняется, что SQL, написанный Чжаном Эрпаном, вызвал полное сканирование таблицы журнала контроля рисков, а данные в таблице журнала контроля рисков достигли 8 миллионов...


Сяо Ву: Ха-ха, такая сцена кажется знакомой, многие компании должны были ее испытать. Brother C: Да, многие осадные львы работают с базой данных напрямую, и качество SQL, который они пишут, не может быть гарантировано.


Сяо Ву: Так как же вы решили эту проблему в конце концов? Brother C: Прежде всего, мы понизили версию службы, чтобы обеспечить доступность основных функций. Затем мы добавили индекс в таблицу данных, оптимизировали SQL и, наконец, решили эту проблему.


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


3. Продолжение бизнеса


Сяо Ву: Брат С, помимо бизнеса в рассрочку, наша компания позже запустила бизнес по кредитованию наличными и управлению активами. Какое влияние окажет добавление этих служб на систему?

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


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

Брат С: Но это зарыло для меня большую дыру, и в будущем мне придется медленно ее засыпать~


Brother C: В бизнесе используется множество кодов Copy-Paste.Например, если поле изменено в пользовательской таблице, необходимо изменить все три системы. Другим примером является добавление кеша Redis, три системы также должны быть изменены. Это слишком громоздко.Если вы забудете изменить его, это может привести к зависанию службы.В то время баги менялись каждый день.

Сяо Ву: Мне жаль тебя на 1 секунду. . .


4. Бесконечные сверхурочные


Брат С: С развитием бизнеса система становится все более сложной, а опыт техников все более «наболевшим», баги, которые невозможно исправлять каждый день, и сверхурочная работа днем ​​и ночью... Сяо Ву: В текущей системе нет этой проблемы, верно, Брат С?

Brother C: К счастью, мы провели трансформацию микросервисов, и эту проблему можно решить. Сяову: Микросервисы? В последнее время очень популярная концепция, брат Си, поделись ею с нами!

Брат К.: Сегодня еще не рано, иначе я расскажу тебе об этом завтра. Сяову: Хорошо, брат Си, спасибо за то, что поделился, завтра я возьму у тебя интервью~


Примечание: компании и персонажи в тексте вымышлены, просто чтобы сделать историю более захватывающей~

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

Продолжение: Теория управления услугами (2) и Практика будут выпущены один за другим~


image_1c5582vev1mql1lrpbm3198i1pkop.png-127.1kB