Узнайте о RPC, почему RPC родился и чем он отличается от HTTP?
вступительный вопрос
- Что такое РПЦ?
- Зачем нужен RPC и какую задачу он решает?
- Чем RPC отличается от HTTP?
- Сколько видов RPC вы знаете?
Познакомьтесь с РПК
RPC: Удаленный вызов процедуры, удаленный вызов процедуры. Когда компьютерная программа вызывает выполнение процедуры в другом адресном пространстве (обычно на другом компьютере, находящемся в общей сети), она кодируется как обычный (локальный) вызов процедуры без явного кодирования программистом деталей удаленного взаимодействия.
RPC — это шаблон сервер-клиент (клиент/сервер), а классическая реализация — этоотправить запрос - получить ответСистема обмена информацией.
RPC — это форма межпроцессного взаимодействия (IPC)., потому что разные процессы имеют разные адресные пространства: если они находятся на одном хосте, у них разные виртуальные адресные пространства, даже если физическое адресное пространство одинаковое; если они находятся на разных хостах, физические адресные пространства разные. Для реализации этой концепции использовалось множество различных (часто несовместимых) технологий.
[Простое понимание]: два разных компьютера (программы),计算机A
существует одинсоглашение,计算机B
хочу позвонить计算机A
нужно пройтисоглашениесделать звонок связи.
Рождение ПКР
Фактически, RPC использовался для связи в распределенных системах еще в 1982 году. Первым человеком, который изобрел термин «удаленный вызов процедуры», был «Брюс Джей Нельсон» примерно в 1981 году.
Хорошо известная Java предоставила Java-версию фреймворка RPC (RMI) в версии 1.1.В это время, после 1990 г., в основном RPC широко использовался для вызовов между системами. Тем не менее, это известно только в направлении серверной части.Для публики они более подвержены таким протоколам, как HTTP.Поэтому RPC будет позже для понимания публикой.
RPC и HTTP
Сначала поговорим о HTTP
HTTP:Hypertext Transfer ProtocolПротокол передачи гипертекста.
Протокол HTTP начал появляться как основной протокол только в 1990 году; причина, по которой он нам известен, заключается в том, что HTTP обычно используется на веб-стороне, то есть веб-браузер взаимодействует с веб-сервером. Когда ajax и json стали популярными во внешнем интерфейсе, json также начал проявлять свои собственные возможности.Простые и легкие в использовании функции сделали json основным выбором для передачи данных во внешнем и внутреннем интерфейсе. Протокол HTTP представлен спецификацией Restful, которая имеет большие преимущества. Этохорошая читаемость,а такжеМожет получить поддержку брандмауэра, многоязычную поддержку.
Недостатки HTTP также быстро обнаруживаются:
- Меньше полезной информации, HTTP находится на седьмом уровне OSI и содержит много информации заголовка HTTP.
- низкая эффективность, из-за седьмого слоя в середине проходит много слоев
- HTTP-протоколВызов удаленных методов сложен, необходимо инкапсулировать различные имена параметров и значения параметров, а также зашифрованную связь и т. д.
Так что же такого хорошего в RPC?
- вся полезная информация
- эффективный
- Просто позвонить
- Не нужно заботиться о сетевой передаче или проблемах со связью
HTTP и RPC на самом деле связаны
http также является способом реализации rpc.
RPC и HTTP отличаются в одном предложении
RPC это как региональный диалект, только известен внутри страны, обе стороны должны знать диалект, иначе они не смогут общаться
HTTP — это мандарин, вы можете в основном понимать и говорить
Где обычно используется RPC?
существуетМикросервисы, РаспределенныеСегодня сервисы, как правило, развернуты на разных серверах, а также серверы в разных регионах, в настоящее время существует проблема межрегиональных и межсерверных вызовов.RPC используется для таких ситуаций.
RPC подходит для внутреннего использования в компании, с низким потреблением производительности, высокой эффективностью передачи и удобным управлением услугами, однако не рекомендуется передавать большие тексты, видео и т.д.
Вопросы в конце статьи
- Помогло ли это вам понять некоторые различия между HTTP и RPC?
- Вы понимаете, для чего используется RPC?
- Вы используете RPC?