Привет! Меня зовут Максим Соколов, я — аналитик в команде “Управление доступностью товаров и категорий”. В нашей команде была выделена отдельная подгруппа, которая создавалась специально под новый продукт-фичу для селлеров. Сразу стало понятно, что для реализации нового функционала требуется разработка нового микросервиса. Командой разработки было принято решение интегрироваться по gRPC, но мне до конца не было понятно, почему выбор именно такой. И тут я решил разобраться подробнее!
Рубрика «RPC»
REST vs gRPC. Межсервисная интеграция для начинающих
2024-11-21 в 11:56, admin, рубрики: api, grpc, json, rest, rest api, RESTful, restful api, RPC, микросервисы, системный анализМикросервисы: Почему именно gRPC?
2024-10-25 в 9:32, admin, рубрики: golang, grpc, Microservices, protobuf, RPCАрхитектура микросервисов широко распространена в современном программировании. Благодаря этой архитектуре разработчики смогут самостоятельно разрабатывать сервисы и управлять ими. Однако очень важно выбрать правильный протокол для эффективного взаимодействия между микросервисами. Здесь протокол gRPC (Google Remote Treatment Call) выделяется своей высокой эффективностью и скоростью. В этой статье мы предоставим подробную информацию о RPC и gRPC, рассмотрим преимущества gRPC в архитектурах микросервисов и продемонстрируем их различия на примерах кода на языке программирования Go.
Непонятный rpc, или же первый пэт-проект или DynamicRPC
2024-08-14 в 14:06, admin, рубрики: C, RPC, проект, протоколы, сетевое программирование, СиВНИМАНИЕ!
Большая часть контента статьи представлена как комментарии в коде!
Введение
Изначально этот проект был всего лишь экспериментом с libffi и можно ли сделать с помощью него полноценный P2P RPC. Вроде бы получилось :-) И в здесь я попытаюсь рассказать что я сделал и какие у этого rpc особенности.
Особенности
Как работает код, который спит месяц
2024-03-08 в 13:00, admin, рубрики: cloud flare, durable execution, restate, RPC, ruvds_перевод, temporal, устойчивое выполнениеВ первой части этого небольшого цикла статей мы говорили о том, что механизм устойчивого выполнения (durable execution) сохраняет состояние программы в журнале, а также о связанных с этим сложностях в случае обновлений служебного кода, ведущих к утрате журналом актуальности. Мы увидели, что ограничение времени выполнения обработчика существенно облегчает эту проблему. Но… не ведёт ли это к потере одного из наиболее интересных свойств устойчивого выполнения — возможности создавать бизнес-процессы, работающие с длительными паузами? В Restate мы считаем, что при использовании правильных примитивов можно ничего не потерять.
Тем не менее, если вы любите писать код с долгими периодами ожидания, потому что он хорошо согласуется с вашей моделью мышления, то Restate поможет вам реализовать это в полной мере. Если же вы цените устойчивое выполнение, но скептично относитесь к долго выполняющимся обработчикам и проблемам с их версионированием, то для этого есть решение. Ниже описаны несколько способов получить те же свойства путём добавления в этот механизм устойчивого обмена сообщениями и состояния.Читать полностью »
PProto: бинарный rpc протокол для Qt framework (часть 2)
2022-05-14 в 18:52, admin, рубрики: c++, RPC, десериализация, Программирование, сериализация, Сетевые технологииВ первой части статьи было рассказано о бинарном и json форматах сериализации данных, о механизмах версионирования. В этой части речь пойдет о концепции команд, сообщениях, и механизмах их доставки.
Команда
В начале было Request/Response
Издатель-подписчик для распределённых отказоустойчивых бортовых систем реального времени в 1500 строк кода
2020-07-28 в 15:07, admin, рубрики: afdx, AUTOSAR, CAN, CORBA, dds, open source, OSI, pub/sub, ROS, ros2, RPC, safety critical, Safety-critical system, service oriented, some-ip, uavcan, авионика, аэрокосмическая техника, бортовая электроника, бортовые системы, БПЛА, буква ё, гетерогенность, дроны, ё моё, космические аппараты, космос, привет всем читающим теги, программирование микроконтроллеров, Разработка робототехники, реальное время, робототехника, сетевой анализ, сети и протоколы, системное программирование, стандарты, транспортСап, котятки.
Я пришёл рассказать о проекте UAVCAN — новом сетевом стандарте для организации взаимодействия узлов и компонентов современных транспортных средств с высоким уровнем автономности/автоматизации. Название является акронимом от Uncomplicated Application-level Vehicular Communication And Networking (несложные бортовые сети и коммуникации уровня приложения).
В этой публикации объясняется текущее положение дел и тренды в области сложных бортовых систем, существующие и грядущие проблемы, как мы их решаем и каких успехов добились. Во второй части, которая будет опубликована позднее, наши коллеги из Университета Иннополис подробно осветят практическую сторону внедрения UAVCAN на примере конкретных проектов.
Конъюнктура
Первый блин проекта был заложен в 2014-м. С самого начала это был эксперимент в минимализме: возможно ли в разработке сложных распределённых бортовых систем опираться на мощные абстракции, избегая при этом роста сложности реализации и связанных с ним трудностей валидации и верификации.
Мы наблюдаем быстрый рост сложности бортовых систем, связанный с развитием функциональных возможностей транспортных средств (особенно беспилотных) в целом, и систем автоматического управления в частности.Читать полностью »
Пишем API на Rust с помощью процедурных макросов
2020-02-03 в 10:33, admin, рубрики: api, darling, derive, http, proc_macro, RPC, Rust, warpПроцедурные макросы в Rust — это очень мощный инструмент кодогенерации, позволяющий обходиться без написания тонны шаблонного кода, или выражать какие-то новые концепции, как сделали, к примеру, разработчики крейта async_trait
.
Тем не менее, многие вполне обоснованно побаиваются пользоваться этим инструментом, в основном из-за того, что разбор синтаксического дерева и атрибутов макроса зачастую превращается в "закат солнца вручную", так как задачу приходится решать на очень низком уровне.
В данной статье я хочу поделиться некоторыми, на мой взгляд, удачными подходами к написанию процедурных макросов, и показать, что на сегодняшний день процедурные макросы можно создавать относительно просто и удобно.
gRPC в качестве протокола межсервисного взаимодействия. Доклад Яндекса
2020-01-15 в 12:18, admin, рубрики: api, c++, grpc, java, rest, RPC, Блог компании Яндекс, микросервисы, удаленный вызов процедурgRPC — опенсорсный фреймворк для удаленного вызова процедур. В Яндекс.Маркете gRPC используется как более удобная альтернатива REST. Сергей Федосеенков, который руководит службой разработки инструментов для партнеров Маркета, поделился опытом использования gRPC в качестве протокола для построения интеграций между сервисами на Java и C++. Из доклада вы узнаете, как избежать частых проблем, если вы начинаете использовать gRPC после REST, как возвращать ошибки, реализовать трассировку, отлаживать запросы и тестировать вызовы клиентов. В конце есть неофициальная запись доклада.
— Сначала хотелось бы познакомить вас с некоторыми фактами про Яндекс.Маркет, они будут полезны в рамках доклада. Первый факт: мы пишем сервисы на разных языках. Это накладывает требования по наличию клиентов для сервисов.
Читать полностью »
Что внутри шаурмы: микросервисы, распределенные системы и Кафка. Делимся материалами со встречи Backend United #5
2019-12-12 в 13:41, admin, рубрики: architecture, backend, databus, meetup, Microservices, RPC, микросервисы, Серверное администрированиеПривет! Этот пост-отчёт с митапа Backend United, нашей серии тематических встреч для разрабочиков серверной части. Пятая встреча получила название «Шаурма», и здесь мы говорили о микросервисах: о способах синхронного и асинхронного взаимодействия между ними, организации потоков данных и роли Кафки в микросервисной архитектуре.
Заходите под кат, если вам интересны эти темы. Внутри поста — все материалы встречи: видеозаписи докладов, презентации спикеров, отзывы гостей митапа и ссылки на фотоотчёт.