home.social

#grpc — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #grpc, aggregated by home.social.

fetched live
  1. And done. My admin tools now all run gRPC. The REST based server (FastAPI) is now only used by a few older versions of the app and will probably stay running for some years.

    I even run a pretty obsolete version of Flask that was the first REST backend. Been doing only minor security updates for a couple of years on it. I should really take it down, the app version that uses this server is over three years old by now.

    #grpc #rust #fastapi #flask #rest

  2. ConnectRPC против gRPC: практическое сравнение

    Привет, Хабр! Меня зовут Артём Трофимов, я работаю backend-разработчиком в компании «Юзтех». Последние 5 лет я занимаюсь разработкой backend-сервисов на Golang, и мне регулярно приходится работать с микросервисами, общающимися по gRPC. Статья будет полезна backend-разработчикам, которые выбирают RPC-фреймворк для нового проекта, а также тем, кто уже работает с gRPC. Для многих gRPC стал стандартом межсервисного взаимодействия: быстрый, строго типизированный, с кодогенерацией. Про его неудобства тоже все знают: сложность отладки, танцы с прокси, отдельная инфраструктура для браузерных клиентов. Всё это принято считать платой за производительность. Но в последние годы у gRPC появился конкурент, который утверждает, что платить больше необязательно. Речь, конечно, про ConnectRPC. Это проект компании Buf, уже принятый в CNCF (Cloud Native Computing Foundation). Я решил разобраться, что он предлагает, собрать на нём тестовый сервис и сравнить с классическим gRPC. Спойлер: местами разница впечатляет, но обо всём по порядку. Почему gRPC стал стандартом gRPC представляет собой RPC-фреймворк (Remote Procedure Call, удалённый вызов процедур), созданный Google и переданный в CNCF в 2017 году. Его популярность держится на нескольких китах:

    habr.com/ru/companies/usetech/

    #go #grpc #ConnectRPC

  3. Как я придумывал замену Redis и что из этого получилось

    Некоторое время назад мне пришла задача спроектировать высокопроизводительный балансировщик нагрузки для протокола Diameter. Через 3 месяца задача исчезла, так как как оказалось слишком долго и дорого, но в итоге балансировщик был сделан и имеется его MVP которое готово к установке как на реальное железо так и в облаке. В итоге продукт получился неплохим, и он с лихвой выигрывал имееющееся решение в той компании, по производительности был выигрыш раз в 6 по ресурсам раз в 100. Но суть не в этом, а в том что балансировщик был кластерным и умел хранить сессии в Redis. Решение было сделано, оно показало работоспособность, все хорошо, но меня не устраивала производительность. В тот момент я столкнулся с очень интересной проблемой - по каким то причинам я не мог пробить барьер в 5-7К Diameter Transactions per second. В принципе 5-7К TPS было неплохо, но проблемным участком как показал анализ был Redis. Проведя немного времени я смог добиться приемлемого результать и производительность поднялась до 20К TPS но там были другие проблемы.

    habr.com/ru/articles/1067130/

    #c++ #redis #grpc #protobuf #inmemory_database #highload #keyvalue #cache #latency #redisdb

  4. Как я посадил WireMock.Net на gRPC стероиды

    WireMock.Net умеет мокать gRPC . Но для этого он заставляет разработчика таскать .proto файлы и поддерживать лишнюю конфигурацию. Я контрибьютил в проект несколько месяцев, разобрался в кишках и написал своё расширение WireMock.Grpc.Protobuf Пакет предлагает gRPC моки через типизированные контракты Google.Protobuf . Получилось короче, надёжнее и заметно удобнее. В статье покажу, почему мой способ удобнее стандартного, как всё устроено под капотом и зачем вашему проекту пакет WireMock.Grpc.Protobuf Кстати, подобные инженерные разборы, open-source и внутренности .NET я регулярно публикую в Telegram-канале StepOne . Если статья зайдёт — заглядывайте. dotnet add package WireMock.Grpc.Protobuf

    habr.com/ru/articles/1063162/

    #grpc #proto #protobuf #wiremock #google #csharp #dotnet #nuget #github #mock

  5. Первый шаг к gRPC-клиенту

    На текущий момент можно считать, что не имеется некоммерческих библиотек или компонентов, позволяющих создать качественный gRPC -клиент (автор, конечно же, в курсе про « DelphiGrpc », но в нынешнем виде полагает её малопригодной для практического использования – хотя бы из-за устаревших версий зависимостей); во многом остроту данной проблемы снимают платные решения – давно существующий компонент TipwGRPC , а также относительно недавно появившийся TsgcGRPCClient . В связи с этим, если по каким-то причинам применение коммерческих вариантов невозможно, то потребуется реализовать указанный клиент своими силами, для чего в статье рассмотрен лишь начальный (но довольно-таки важный) этап разработки: а как, собственно говоря, использующий клиент станет вызывать gRPC-методы – посредством каких функций или процедур, какие параметры они будут требовать, и далее в таком духе? В грубом приближении, что должно быть в этом прототипе вместо многоточий? function CallMethod(...): ...; Надо заметить, что представленное здесь рассчитано больше не на универсальные gRPC-клиенты, а скорее специализированные – когда работа всегда ведётся либо с одним и тем же сервером, либо с несколькими похожими и без кардинальной разницы – их возможные нюансы можно не выносить в настройки клиента, заложив непосредственно в код реализации, а оставшиеся немногочисленные параметры указывать прямо в CallMethod . Также хочется проговорить явно, чтобы читатель не имел ложных надежд, – материал совершенно не содержит ответа на вопрос «как», тут только предложен вариант программного интерфейса к gRPC-клиенту (весьма подробно, однако, расписанный).

    habr.com/ru/articles/1060672/

    #gRPC

  6. 🪧 gRPC-Web Should Have Fixed gRPC: gRPC-Web should have been the pressure that made gRPC simpler, more inspectable, and better suited for the web.
    kmcd.dev/posts/grpc-web-should
    #Grpc #Grpc-web #Protobuf #Connectrpc

  7. 🪧 gRPC-Web Should Have Fixed gRPC: gRPC-Web should have been the pressure that made gRPC simpler, more inspectable, and better suited for the web.
    kmcd.dev/posts/grpc-web-should
    #Grpc #Grpc-web #Protobuf #Connectrpc

  8. Великая ересь, или Как использовать protobuf без контракта

    Привет! На связи Влад, разработчик product-facade — сердца витрины Ozon и одного из самых высоконагруженных сервисов, который выдерживает до 2,2 млн RPS. В прошлой моей статье я рассказывал об одном из архитектурных вызовов, с которым мы столкнулись в процессе работы. В этот раз продолжим тему микросервисной архитектуры и поговорим о том, что происходит, когда привычная строгость контрактов начинает мешать. Одна из ключевых причин использования gRPC для связи между сервисами — строгий protobuf-контракт. Он даёт типизацию, фиксирует схему данных и снижает риск случайно сломать интеграцию. Но иногда случаются ситуации, когда эти плюсы загоняют нас в рамки. Например, когда сервис просто передаёт данные дальше, но его всё равно приходится обновлять из-за изменений, которые нужны только конечному потребителю. В таких случаях полезно знать, какие механизмы protobuf позволяют работать с контрактом более гибко, не отказываясь от него полностью. В статье расскажу о трёх из них и приведу примеры, для чего они могут применяться.

    habr.com/ru/companies/ozontech

    #gRPC #protobuf #микросервисы #контракт #проксирование #передачаданных #строгийконтракт #механизмыprotobuf #обновлениесервиса #ozon_tech

  9. Recently updated the backend for my silly little app to gRPC from plain REST. Works beautifully and is a bit faster too. Now started the task of updating all the admin endpoints to gRPC too. There are almost as many endpoints as for the client, so this will take a while. Fortunately I can take them one by one and still have a fully working admin setup. Gives me an opportunity to fix up some rough edges in the PyQt admin app I use, so it's a win-win I guess.

    #grpc #rust #pyqt #backend #indiedev

  10. 🪧 Proxy, Record, and Mock gRPC APIs with FauxRPC: Stop writing mock stubs by hand. How FauxRPC uses smart proxying, reflection, and CEL to automate your API testing.
    kmcd.dev/posts/fauxrpc-proxy/
    #Fauxrpc #Connectrpc #Grpc #Protobuf #Api #Rpc #Go #Golang #Http3

  11. 🪧 Proxy, Record, and Mock gRPC APIs with FauxRPC: Stop writing mock stubs by hand. How FauxRPC uses smart proxying, reflection, and CEL to automate your API testing.
    kmcd.dev/posts/fauxrpc-proxy/
    #Fauxrpc #Connectrpc #Grpc #Protobuf #Api #Rpc #Go #Golang #Http3

  12. 🪧 Introducing ProtoDocs: A protobuf-first documentation browser for APIs that deserve better than ugly generated docs.
    kmcd.dev/posts/introducing-pro
    #Protobuf #Grpc #Connectrpc #Documentation #Go #Rpc

  13. 🪧 Introducing ProtoDocs: A protobuf-first documentation browser for APIs that deserve better than ugly generated docs.
    kmcd.dev/posts/introducing-pro
    #Protobuf #Grpc #Connectrpc #Documentation #Go #Rpc

  14. On my way to #AutoCon5 in Munich...

    I'm looking forward to informative workshops about #infrahub, #netbox, #ai , #gRPC and engaging presentations

  15. MongoDB is hiring Software Engineer 3

    🔧 #java #grpc #aws #azure #docker #gcp #kubernetes #mongodb
    🌎 Alberta; British Columbia; Calgary, Alberta; Edmonton, Alberta; Nova Scotia; Ontario; Ottawa, Ontario; Quebec; Toronto, Ontario; Vancouver, British Columbia
    ⏰ Full-time
    🏢 MongoDB

    Job details jobsfordevelopers.com/jobs/sof
    #jobalert #jobsearch #hiring