
Строим шину данных для микросервисов на ZeroMQ: failover, гарантии доставки и E2E-шифрование
Antony_Glyzin 12 минут назад Строим шину данных для микросервисов на ZeroMQ: failover, гарантии доставки и E2E-шифрование Сложный 9 мин 339 Open source * Python * Криптография * Микросервисы * Распределённые системы *...
Anthropic — What company has the best second artificial intelligence model at the end of June?
В сфере искусственного интеллекта произошло заметное событие. Antony_Glyzin 12 минут назад Строим шину данных для микросервисов на ZeroMQ: failover, гарантии доставки и E2E-шифрование Сложный 9 мин 339 Open source * Python * Криптография * Микросервисы * Распределённые системы * Туториал Давайте представим ситуацию. Есть много сервисов (чаще всего это паттерн pub/sub), и обращаться к каждому приходится по порту. Возьмём для примера один сервис: порт приёма сообщений у него один, порт отдачи — другой.
Умножаем два порта на количество сервисов — и получаем головную боль. Именно она и стала отправной точкой. Mail Pigeon (почтовый голубь) - это еще один воодушевляющий вызов для меня, для моего роста.
Технические детали
Зачем концентрироваться на угрюмых облаках, если можно улыбнуться восходящему солнцу. К тому же ZeroMQ мне понравился с первого взгляда. Желание сделать что-то в этом направлении вызвано ещё и тем, что в своей практике я постоянно видел противоположный подход.
Так что, это просто желание выговориться, что можно сделать по-другому. Желание сбросить мысленные оковы идеи, которая может днями сверлить мозг. Поэтому, когда я увидел проблему, я в тот же момент увидел решение.
Так появился Mail Pigeon — асинхронная клиент-серверная библиотека на ZeroMQ, которая позволяет сервисам адресовать сообщения друг другу по имени, а не по порту. Почтовый голубь, который доставит письмо даже в бурю. С гарантией доставки, автоматическим восстановлением после сбоев и end-to-end шифрованием.
Отраслевые последствия
Проблема: почему REST не всегда подходит для микросервисовКогда несколько сервисов общаются друг с другом, чаще всего используют REST API. Это просто, понятно, а главное — привычно. Но у REST есть врождённые ограничения, которые становятся проблемой при росте системы:Синхронность.
Сервис А отправляет запрос сервису Б и ждёт ответа. Если сервис Б упал или тормозит, сервис А тоже встаёт. Нет гарантии доставки.
Если между сервисами пропала сеть, HTTP-запрос просто упадёт с ошибкой. Повторять запрос нужно вручную. Протокольные накладные расходы.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





