使用grpc将大量数据从服务器传输到客户端的最佳实践是什么?

时间:2020-04-20 16:02:13

标签: grpc

我在系统中使用grpc作为消息总线,这意味着客户端可以将消息发送到服务器,服务器保存消息,然后将其转发给其他合适的客户端。

当前在服务器端(用C ++编写),我使用单向流向客户端发送消息。但是在性能测试中我发现性能不好。客户端A以50k / sec的速度向服务器发送消息,但是服务器每秒只能向客户端B转发约3k消息。

我启用了:: grpc :: WriteOptions()。set_buffer_hint(),并尝试调整一些参数,例如GRPC_ARG_MAX_CONCURRENT_STREAMS和GRPC_ARG_HTTP2_WRITE_BUFFER_SIZE,但看起来它们没有帮助。

我想这个问题是由“流”引起的,因为它必须确保顺序。因为在我的情况下我根本不在乎消息顺序,所以我想知道是否有任何方法可以改善流性能?

我不确定'stream'是否适合这种要求,如果客户端继续从服务器轮询而不是服务器通过stream推送数据,这是更好的方法吗?

0 个答案:

没有答案