当前位置: 首页 > 知识库问答 >
问题:

我应该在gRPC Java中重用StreamObservators吗?

黄泰宁
2023-03-14

我是gRPC的新手,正在编写一个应用程序,其中8个客户端每秒向gRPC服务器发送50k个异步请求。我知道我应该为每个客户端重用该通道,但是流观察者怎么样?现在每次客户端发出请求时,我都会创建一个新的流观察者。这会是瓶颈吗?如果有任何回复,我将不胜感激!

共有1个答案

白飞飙
2023-03-14

不需要为每个请求创建StreamObserver。只需通过StreamObserver#onNext发送请求,发送完所有请求后,即可将其关闭。

        StreamObserver<HelloMessage> requestObserver = stub.sayHello(streamObserver);

        for (int i = 0; i < 100; i++) {
            HelloMessage message = HelloMessage.newBuilder()
                                               .setMessage(i + " Server Stream")
                                               .build();

            requestObserver.onNext(message);
        }
        requestObserver.onCompleted();
 类似资料:
  • 问题内容: 这是我从这里看到的代码。我对关键字感到困惑。 对于,我需要? 对于,我需要? 问题答案: 无需在回调中使用return语句。Promise构造函数不期望回调返回任何类型的返回值。 因此,在该回调中使用语句的原因仅是为了控制该函数中的执行流程。 如果您希望回调内部的执行完成而又不执行该回调中的任何其他代码,则可以在此时发出a 。 例如,您可以这样编写代码,而无需声明: 在这种情况下,您使

  • 问题内容: 我们的网站目前正在使用jQuery库,每月的访问量约为100万。我们希望包括以API为中心的方法,因此决定转向Javascript MVC并为此选择了angularJS。 现在我的问题是,我应该在Angular顶部使用jQuery,以便我需要重写最少的DOM操作代码,还是应该以Angular方式重写所有内容?我们使用的是jQuery插件,例如plupload,jQuery UI。等在网

  • 问题内容: 有时是有用的,例如,如果我为网站上的所有链接(例如选择器)定义了通用样式,但是当我要覆盖某些规则时,可以有以下选择: 使用更具体(更长)的选择器 采用 哪种方法更好,可能有一些指导原则? 问题答案: 使用非常,非常谨慎- 它会覆盖刚才的一切,甚至是内联样式和混乱在低于显而易见的方式与样式规则“梯级”,让CSS的名字。它很容易使用不当,而且容易成倍增加,尤其是在滥用时。您可以轻松地得出一

  • 在所有示例中,我总是看到分区通过接收Hash分区器的新实例 我加入了两个RDD。它们的键列具有来自同一集合的值。为了更有效地连接,我应该对两者进行分区吗?如果是,我应该创建一个HashPartitioner实例hp吗 并传递hp到两个分区方法,以便有要连接的行落到同一个节点?这是分区的工作方式吗?

  • 问题内容: 这是与以前的帖子有关的问题,但是此帖子已解决,现在我想更改问题的方向。 当与工作JNI,有必要询问对象和用于将在C / C 代码中使用每个类和方法。为了清楚起见,我想从C / C 调用Java构造函数或方法。 由于从Java到C / C ++的通信成本很高(反之亦然),因此我最初认为使这种情况最小化的一种方法是重用and 。因此,我将该实例保存在全局变量中,如下所示: 一个更具体(且有

  • 问题内容: 我不太清楚当我这样说时会做什么: 我可以稍微了解使用它的原因,因为它不浏览整个数据库表以更新字段,而是仅更新新添加的记录。如我错了请纠正我。 所以我想做的是使用这样创建索引: 一旦执行此操作,文档就根本不会上传到索引。我要去哪里错了? 任何帮助,不胜感激。 问题答案: 如果您的表中有一个时间戳列(例如),则最好使用它代替ID号。这样,当记录更新时,您也可以修改该时间戳,输入插件将提取记