«Интервью», чтобы получить письмо о намерениях от Сяохуншу

опрос

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

大纲
контур

одна сторона


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

  • описать предмет

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

  • роль в проекте

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

  • С какими трудностями вы столкнулись в проекте

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

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

Я вижу, что в вашем резюме написано восстановление сетевого трафика.Вы должны быть знакомы с компьютерными сетями? (Обратите внимание, вы должны иметь немного того, что написано в вашем резюме.номер Б), тогда поговорим о компьютерных сетях

  • Расскажите о трехстороннем рукопожатии TCP в компьютерных сетях.

Сначала клиент отправляетSYNпакет, полученный серверомSYNОтвечатьSYN+ACK, то клиент отвечаетACKУказывает на получение.

Ваш ответ точно не удовлетворит интервьюера, так что добавьте несколько балловИнгредиенты, Как получаются блюда без приправ ароматными? Затем подробно оформите

Сначала стек протоколов клиента отправляет сообщение на серверSYNpackage, и в то же время сообщить серверу текущий отправленныйсерийный номерравно X, то клиент входитSYNC_SENTусловие

После того, как стек протоколов сервера получает этот пакет, он используетACKОтветить, ценность ответа в это времяX+1, указывая на то, чтоSYNПодтверждение пакета J, и сервер также отправляетSYNpackage, сообщая клиенту, что мой текущий порядковый номер отправки — Y, и сервер вводитSYNC_RCVDусловие

Стек протоколов клиента получаетACKДалее приложение проходитconnectвызов на стороне сервераоднонаправленныйСоединение успешно, и статус сейчасESTABLISHED, в то же время стек протоколов на стороне клиента на стороне сервераSYNОтвет, на данный момент данные Y+1

Сервер получает ответный пакет клиента,acceptБлокирующий вызов возвращается.В это время одностороннее соединение между сервером и клиентом также успешно установлено, и сервер войдет вESTABLISHEDусловие

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

***Первое рукопожатие: ***Сяо Лань признался девушке, что ты мне нравишься, а потом я тупо ждал ответа

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

третье рукопожатие: я получил ответ от девушки, которая сказала: «Той ночью я пошла есть горячее, смотреть фильм и заниматься физиотерапией».

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

Интервьюер сказал: «Тогда я спрашиваю вас, если SYN, отправленный клиентом, потерян или сервер не может его обработать по другим причинам, в чем причина?

Этот сценарий очень распространен и не является надежным. При надежной передаче TCP, если пакет SYN находится в процессе передачипотерянный, клиентский сегмент сработаетмеханизм ретрансляции, но постоянно ретранслировать не бессмысленно, количество ретрансляций ограничено, что можно определить пунктом конфигурации tcp_syn_retries. Если в данный момент конфигурация tcp_syn_retries равна 3, то процесс выглядит следующим образом.

TCP重传

Когда клиент отправляет SYN, если он не получил ответа от сервера через 1с, то выполняется первая повторная передача. Если ответ от Севера не получен в течение 2 с, будет выполнена вторая повторная передача, и tcp_syn_retries будет повторно передаваться все время. Три повторных передачи здесь означают, что при первой отправке SYN нужно подождать (1 +2 +4 +8) секунд, если ответа по-прежнему нет, соединение будет пройдено.ETIMEOUTошибка возвращена.

Разговоры о четырехкратном махании, эй, скромный Ланьлан

первая волна: Девушка чувствует, что она не подходит этому парню, но она хороший человек, поэтому она решает расстаться и ждет, пока парень ответит

вторая волна: Этот мальчик, он тоже умеет играть, он прямо сказал: "Очки делятся"

Третья волна: Через некоторое время мальчик почувствовал, что это слишком хорошо, чтобы потерять лицо: «Я большой человек, я должен был предложить расстаться», поэтому он сказал девушке: «Давай расстанемся».

четвертая волна: Когда девушка видит эту новость, ты "сумасшедший критик" или "сумасшедший"?

TIMEWAIT понимает, что делать, если TIMEWAIT слишком много, в чем причина?

Ответ на вопрос не что иное, как что, почему и что можно решить

Во время четырехступенчатого процесса TCP сторона, инициировавшая отключение, войдет вTIME_WAITположение дел. Обычно TCP-соединение предоставляет услуги через внешние порты. В случае высокого параллелизма каждое соединение занимает порт, но порт ограничен, так что это может привести к исчерпанию порта, поэтому будет '"Обслуживание иногда хорошее иногда плохое".

Как показано на рисунке ниже, TCP проходит четыре волны.Когда соединение TCP будет готово к завершению, будет отправлено сообщение FIN.Узел 2 переходит в состояние CLOSE_WAIT и отправляет ответ ACK. Хост 1 останется в TIMEWAIT на 2MSL.

Почему бы сразу не войти в переход CLOSE, а сначала нужно дождаться 2MSL, что вы делаете в это время?

первая причинаЭто делается для того, чтобы последний ACK мог быть получен нормально, чтобы эффективно завершить работу в обычном режиме. Как понять?Когда ученые разрабатывали TCP, они предполагали, что сообщение TCP] пойдет не так и начнется повторная передача.Если сообщение хоста 1 не будет успешно передано, то хост 2 повторно отправит сообщение FIN.В это время хост 1 не поддерживается. В состоянии TIME_WAIT контекст будет потерян, а RST будет восстановлен, что приведет к ошибке на стороне пассивного отключения сервера.

四次挥手

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

Сетевое соединение может проходить через бесчисленное количество маршрутизаторов и коммутаторов, и неизвестно, какое из соединений выйдет из строя. Для выявления связи воспользуемся четверным методом [исходный IP, исходный порт, целевой IP, целевой порт]. Предположим в это время два соединения А, В. Соединение A прерывается в середине, и в это время воссоздается соединение B. Четверка соединения B такая же, как и соединение A. Если соединение A достигает пункта назначения через определенный период времени, то Соединение B, скорее всего, будет рассматриваться как часть соединения A, что может вызвать путаницу. Таким образом, TCP устанавливает такой механизм, при котором пакеты в обоих направлениях отбрасываются.

Итак, в чем опасность TIME_WAIT?

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

Оккупация портов. Порты, которые можно открыть: 32768~61000.

Вы оптимизировали TCP?

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

Мы все должны знать полусоединение, то есть соединение, которое не отвечает SYN+ACK после получения SYN, тогда каждый раз, когда сервер получает новый пакет SYN, он будет создавать полусоединение, а затем добавлять это полусоединение. подключение кполусвязная очередьВ (syn queue) длина очереди syn ограничена, что может быть настроено через tcp_max_syn_backlog.Когда количество незавершенных полусоединений в очереди превышает настроенное значение, новые пакеты SYN будут отбрасываться. Для сервера может быть много новых подключений в одно мгновение, поэтому увеличьте значение, чтобы предотвратить отбрасывание пакета SYN и получение Клиентом SYN+ACK.

Можно ли заставить интервьюера почувствовать, что в этом парне что-то есть. Как это настроить

配置syn queue

Вы считаете интервьюера идиотом? Конечно нет, на случай, если интервьюер спросит вас: бэклог полуконнектов больше, есть ли другие причины?

Ха-ха-ха, это показывает, что интервьюер попался на крючок, да ладно, посмотрим, в чем еще причина

Также возможно, что вредоносный Клиент выполняет атаку SYN Flood.

Как происходит атака SYN Flood?

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

SYN+ACK сервера найдет IP-адрес в соответствии с предыдущим пакетом SYN, и будет обнаружено, что это не исходный IP-адрес, поэтому он не может получить пакет ACK клиента, поэтому соединение не может быть установлено правильно, а очередь полусоединений сервера естественно исчерпана и не может ответить нормальный SYN пакет

Так есть ли решение этой проблемы?

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

Сначала сервер получает SYN-пакет, не выделяет ресурсы для сохранения информации клиента, а вычисляет значение куки по SYN, после чего записывает куки в SYN ACK и отправляет наружу

Если это нормально, это значение Cookies будет возвращено с сообщением ACK клиента.

Сервер проверит действительность пакета ACK на основе этих файлов cookie и создаст соединение, если оно является законным.

Итак, как включить SYN Cookies?

SYN Cookies
SYN Cookies

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

  • Что такое огромная страничная память?

Протер, почти не реагировал, "Мастер памяти", но это реально офигенно, огромная страничная память, помните, даогромная страничная память.

Мы знаем, что управление памятью кучи операционной системы принимаетМногоуровневые таблицы страниц и пейджингДля управления размер каждой страницы по умолчанию устанавливается операционной системой в 4 КБ. Если предположить, что память, используемая текущим процессом, больше 1 ГБ, то в это время в таблице страниц будет занято 1 ГБ/4 КБ = 26211 записей таблицы страниц, но количество записей таблицы страниц, которые может разместить системный TLB, намного меньше. чем это число. Таким образом, когда несколько приложений, интенсивно использующих память, обращаются к памяти, это приведет к слишком большому количеству промахов TLB. Поэтому в некоторых случаях необходимо уменьшить количество промахов. Возможным способом является увеличение размера каждой страницы.

По умолчанию большая страница, поддерживаемая операционной системой, составляет 2 МБ. При использовании 1 ГБ памяти таблица страниц будет занимать 512 элементов таблицы страниц, что значительно улучшит число попаданий в TLB и, следовательно, повысит производительность. Кроме того, следует отметить, что большая страничная память выделяется физической памятью, поэтому нет операции по выгрузке диска, поэтому нет прерывания ошибки страницы и не возникает задержка при доступе к диску.

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

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

  • Используйте вектор m для записи новой позиции, на которую i следует настроить, если буква повторяется позже.

  • Так что при каждом обновлении будет сохраняться j+1, то есть позиция после буквы

  • j представляет собой последнюю букву подстроки, а длина подстроки рассчитывается как j - i + 1

无重复字符的最长子串

две стороны


С одной стороны, я чувствовал себя довольно хорошо, но, как и ожидалось, пришла вторая сторона.Мисс HR позвонила, чтобы сообщить второй стороне в среду, хорошо, для теплого синего, который никогда не опаздывает, она должна быть пунктуальной. Держите кофе и ждите до 14:30.Что касается того, почему я держу чай, это моя привычка.Перед интервью я выпиваю чашку чая и жду поддержки интервьюера (большинство интервьюеров на самом деле очень мягкие).

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

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

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

"Привет"

"Привет, это ХХ?"

"Мммм, привет, интервьюер"

«Я ваш второй интервьюер, позвольте сначала представиться»

Меня зовут Сяолань, я из университета XX, бакалавр XX, магистр XXX, я учился в XX в этот период, спасибо, интервьюер. Вам не нужно быть таким вычурным в своем представлении, просто сосредоточьтесь на ключевых моментах, вам все равно, сколько раз вы влюбитесь в свою степень бакалавра, и вас не будет волновать ваш XXXX, просто держите его простым и ясным, и начните с двух сторон.

  • Вы должны были изучить C, в чем идея использования C для достижения полиморфизма?

Что касается этого вопроса, то я до сих пор весьма удивлен.Почему я вдруг спросил С.Поразмыслив над этим, я мог бы еще рассмотреть понимание полиморфизма, наследования и т. д. в объектно-ориентированном.

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

c实现重载

Понимание вышеуказанного метода упрощает реализацию полиморфизма.

c实现多态

Мне не хочется спрашивать, сначала напишите код, слейте двумя способами

Ха-ха, напоминает мне лирику "Подойди и проведи дракона со мной слева, а справа нарисуй радугу" (картинка дополнения мозга)

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

归并排序
Сортировка слиянием

Вы понимаете инвертированный индекс?

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

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

正排索引

Стоимость обхода хеш-таблицы здесь составляет O(n). Каждый раз, когда вы просматриваете документ, вам нужно просмотреть каждый символ, чтобы определить, содержит ли он два слова. Предполагая, что средняя длина каждого документа равна k, затраты времени на просмотр документа равны O(K).

Есть ли способ оптимизировать его?

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

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

Как создать инвертированный индекс?

  • Сначала пронумеруйте документ, чтобы представить уникальное представление, а затем отсортируйте и просмотрите документ.
  • Проанализируйте ключевые слова каждого документа и сгенерируйте . Позиция ключевого слова здесь в основном для отображения информации до и после ключевого слова при извлечении.
  • Вставьте ключ ключевого слова в хеш-таблицу. Если ключ уже существует в хэш-таблице, добавьте узел в соответствующий список проводок и запишите идентификатор документа. Если в хеш-таблице нет соответствующего ключа, вставьте ключ и создайте список проводок и соответствующий узел.
  • Повторите шаги 2 и 3 для обработки всех документов.
创建倒排索引

Что, если вы хотите запросить два ключа, которые содержат как «теплый», так и «синий»?

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

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

  • Сначала используйте два указателя P1 P2, чтобы указать на первый элемент упорядоченного связанного списка AB соответственно.
  • Затем сравните, совпадают ли узлы, на которые указывают два указателя, что может произойти в трех случаях.
    • Если идентификаторы двух одинаковы, они являются общими элементами, которые можно объединить напрямую, а затем P1 и P2 перемещаются обратно.
    • Элемент p1 меньше, чем элемент p2, потомок p1, указывающий на следующий элемент связанного списка A
    • Элемент p1 больше, чем элемент p2, и потомок p2 указывает на следующий элемент в связанном списке B.
  • Повторяйте второй шаг, пока p1 и p2 не переместятся в конец связанного списка.
链表公共元素
общедоступный элемент связанного списка

Вы сказали, что использовали kafka, так как же убедиться, что вы потребляете только один раз при использовании очереди сообщений?

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

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

Давайте сначала посмотрим, что есть несколько этапов записи сообщения в очередь сообщений.Во-первых, сообщение записывается от производителя в очередь, сообщение сохраняется в очереди сообщений, а сообщение потребляется потребителем. этап, любой этап может быть потерян, рассмотрим эти этапы отдельно丢失的三种可能

Первый этап: производство сообщения

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

Второй этап: потерялся в очереди

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

Я вижу, что вы играли в acm в своем резюме. Расскажите нам о своей стратегии или опыте.

Ха-ха-ха, наконец-то мне пора выдувать воду. Сдержанный, самый наглый понты

Напишите обычное электронное письмо с подтверждением электронной почты

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

实现验证邮箱的正则
Осознайте регулярность проверки почтового ящика

Знаете о отображении памяти? скажи это, скажи это

Так как лучше всего сказать, добро пожаловать. От того, что такое память, до того, как просматривать память сервера и, наконец, как лучше использовать память.

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

Ядро Linux предоставляет виртуальное адресное пространство для каждого процесса, и адрес пространства является непрерывным, в этом случае процессу очень удобно обращаться к виртуальной памяти.

виртуальный адрес делится напространство ядраа такжепользовательское пространство, диапазон адресов процессора разной длины слова тоже разный. Давайте посмотрим на 32-битное и 64-битное виртуальные адресные пространства соответственно.

内核空间与用户空间
Пространство ядра и пространство пользователя

Из этого рисунка видно, что пространство ядра в 32-разрядной системе составляет 1 ГБ, а пространство ядра 64-разрядной системы и пространство пользователя — 128 Тбайт.

карта памяти, т.е.Адреса виртуальной памяти сопоставляются с адресами физической памяти., После успешного завершения сопоставления необходимо вести таблицу страниц для каждого процесса, чтобы записывать взаимосвязь между ними.虚拟地址到物理地址的转化

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

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

用户空间各个段
Сегменты пользовательского пространства

Я не мог не тихо спросить HR, второй интервьюер оценил меня, базовые навыки и навыки кода хорошие, проект не ясен

  • Возможно, я сам не понял более важных вещей проекта.
  • Занимаюсь разными направлениями, и понимание некоторых профессиональных терминов разное)

Три стороны

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

Что такое блокировки потока?Я говорил о блокировке чтения-записи и прервал меня, и спросил меня, какие проблемы будут с блокировкой чтения-записи.Это была не более чем проблема голодания блокировки записи.как мне избежать

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

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

Вы узнали о RPC?

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

Каков коммуникационный процесс RPC?

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

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

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

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

RPC过程
RPC-процесс

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

5 Резюме

Обратите внимание на следующие моменты:

  • Компания набирает вас на работу и не будет снижать уровень ваших требований из-за того, что вы делаете.
  • Написание кода на инструменте полностью отличается от разрыва кода вручную.
  • Цените каждую возможность интервью и учитесь анализировать.
  • Для первокурсников основной проверкой является овладение базовыми компьютерными знаниями.Требования к проекту не такие высокие.Если делать самому,то придется много работать над деталями и делать тесты.Только так вы будете знать какие проблемы вам столкнетесь, с какими трудностями столкнетесь и как их решить. . Чтобы мы могли говорить красноречиво.
  • Не бойся неклассов, если будешь бояться, то проиграешь! Должен попробовать больше.
img
img

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