Что это такое?
bRPC — это промышленный C++ RPC-фреймворк, созданный в Baidu для высокопроизводительных систем, таких как поиск, хранение данных, машинное обучение, реклама и рекомендации; название расшифровывается как «лучше RPC».
Это готовый сервер или фреймворк, на основе которого я строю свои сервисы?
Это C++-фреймворк (библиотека), которую вы подключаете к своему коду, чтобы создавать серверы, понимающие несколько протоколов на одном порту, и клиенты, которые могут обращаться к ним синхронно, асинхронно или полусинхронно.
Как мне его собрать и начать использовать?
Соберите его из исходников по руководству по началу работы проекта (поддерживаются Bazel и Make) или используйте прилагаемый Dockerfile; в комплекте есть примеры сервисов, чтобы сразу попробовать протоколы.
Все ли упомянутые протоколы доступны сразу, без доработок?
Большинство — да, но хотя бы один из перечисленных протоколов (hadooprpc) помечен как тот, который, возможно, будет открыт позднее, поэтому не всё упомянутое гарантированно есть в публичном репозитории.
Это для небольших личных проектов или для крупных систем?
Он рассчитан на крупные высоконагруженные производственные системы — его используют в инфраструктуре поиска, хранения данных, машинного обучения, рекламы и рекомендаций Baidu.
Работает ли оно на Windows, а также на Linux и macOS?
CI-процессы проекта покрывают только Linux и macOS; CI-задачи для Windows нет, поэтому Windows официально не является тестируемой платформой.
Что на самом деле означает название «brpc»?
В README проекта оно объясняется как «лучше RPC» — игра слов с общим термином RPC.
Какие протоколы может поддерживать один сервер bRPC?
Один сервер может обрабатывать несколько протоколов на одном порту, включая HTTP/HTTPS, gRPC (h2), Redis, Memcached, Thrift, RTMP/FLV/HLS и несколько внутренних протоколов Baidu.
Как мне с его помощью строить высокодоступные распределённые сервисы?
bRPC включает промышленную реализацию алгоритма консенсуса RAFT, которая также открыта отдельно под названием «braft» и предназначена для построения высокодоступных распределённых сервисов.
Можно ли мне отлаживать или профилировать работающий сервис bRPC?
Да — встроенная отладка по HTTP показывает статус, переменные (vars), соединения и флаги, а также позволяет запускать профилировщики CPU, кучи и конкуренции прямо на работающем сервере.
Which topics is it in?
protocol-buffers, profiler, consensus, load-balancer, rpc, grpc, concurrency, high-performance, microservices, redis, http, distributed-systems
