Какова лучшая практика для передачи огромных данных с сервера на клиент с GRP c? - PullRequest
0 голосов
/ 20 апреля 2020

Я использую grp c в качестве шины сообщений в нашей системе, это означает, что клиент может отправлять сообщения на сервер, а сервер сохраняет сообщения и затем пересылает их другим подходящим клиентам.

в настоящее время на стороне сервера (написано на C ++) Я использую поток однонаправленных сообщений для отправки сообщений клиентам. но во время теста производительности я обнаружил, что производительность не очень хорошая. Клиент A отправляет сообщения на сервер со скоростью 50k / se c, но сервер может пересылать только ~ 3k сообщений клиенту B.

Я включил :: grp c :: WriteOptions () .set_buffer_hint (), и попытался настроить некоторые параметры, такие как GRPC_ARG_MAX_CONCURRENT_STREAMS и GRPC_ARG_HTTP2_WRITE_BUFFER_SIZE, но похоже, что они бесполезны. приказ. так как в моем сценарии меня не волнует порядок сообщений, мне интересно, есть ли способ улучшить производительность потока?

И я не уверен, является ли «поток» правильным способом для такое требование, лучше ли, если клиенты продолжают опросить с сервера вместо сервера pu sh data with stream?

...