Articles of grpc

GRPC从客户端到服务器的转发代理

从nodejs或java中使用grpc,使grpc客户端通过代理连接到服务器所需的属性或configuration是什么? 我一直无法find解释设置的示例或文档。 我需要在代码本身做些什么吗? 我在一个代理后面,我不确定是否问题是我的设置不正确,或者我的代理不支持grpc。 它支持http / 2作为协议升级。 我在java中的代理设置是: -Dhttp.proxyHost=xxx.xxx.xxx -Dhttp.proxyPort=8888 -Dhttp.nonProxyHosts="*.nowhere.nothing" -Dhttps.proxyHost=xxx.xxx.com -Dhttps.proxyPort=8888 -Dhttps.nonProxyHosts="*.nowhere.nothing" -Dsocks.proxyHost=xxx.xxx.xxx -Dsocks.proxyPort=8888 -Dsocks.nonProxyHosts="*.nowhere.nothing"

如何在Node.js实现中更改gRPC的重新连接行为?

从我所知道的情况来看,gRPC客户端会自动尝试使用退避algorithm重新build立丢失的连接。 我的目标是让gRPC至less每秒钟尝试重新连接。 使用Go实现时,可以通过在首次build立与服务的连接时传递WithBackoffMaxDelay拨号选项。 我如何在Node.js实现中做同样的事情? build议我尝试将grpc.max_reconnect_backoff_ms选项传递给客户端构造函数。 如果我故意传递一个无效的值,如-1,gRPC会logging一条错误消息,所以我相信我正确地使用它。 但是,该选项似乎不影响gRPC的重新连接行为。 相反,它似乎试图每20秒重新连接: I0215 21:21:07.246695000 140736304567232 subchannel.c:694] Connect failed: {"created":"@1487190067.246665000","description":"Failed to connect to remote host","errno":61,"file":"../src/core/lib/iomgr/tcp_client_uv.c","file_line":104,"os_error":"connection refused"} I0215 21:21:07.246910000 140736304567232 subchannel.c:491] Retry in 19.999536519 seconds 更令人困惑的是,gRPC似乎根本没有使用退避algorithm,即它总是使用〜20s的值。

Tensorflow服务grpc客户端错误12

我目前正在尝试通过张量服务服务一个简单的模型,然后我想通过使用node.js通过gRRC调用它。 我觉得学习/理解这个最简单的方法就是把它分解成最简单的模型。 请原谅这个命名,因为我最初是用一个Mnist教程开始做的,但是我也没有成功。 所以这个名字还是说mnist,但这只是一个简单的计算实现。 我使用下面的代码创build和导出模型: – 简单模型 – x = tf.placeholder(tf.float32, shape=(None)) y = tf.placeholder(tf.float32, shape=(None)) three = tf.Variable(3, dtype=tf.float32) z = tf.scalar_mul(three, x) + y – 出口 – model_version = 1 path = os.path.join("mnist_test", str(model_version)) builder = tf.python.saved_model.builder.SavedModelBuilder(path) with tf.Session() as sess: sess.run(tf.global_variables_initializer()) builder.add_meta_graph_and_variables( sess, [tf.python.saved_model.tag_constants.SERVING], signature_def_map = { "test_mnist_model": tf.saved_model.signature_def_utils.predict_signature_def( inputs={"xval": x, "yval":y}, […]

如何在grpc双向rpc中发送消息,而不需要grpc节点客户端的缓冲

RouteChat是一个双向rpc的例子 ,似乎是在写入时缓冲消息。 有没有办法强制写入输出stream立即不缓冲?

不能让gRPC与Electron.js一起工作

我正在制作一个电子应用程序,它应该通过grpc连接到远程主机,并从那里调用一些function。 但我不断收到以下错误:未捕获错误:dynamic链接库(DLL)初始化例程失败。 \ \ d:\工程\演示应用程序\ node_modules \ GRPC的\ src \节点\ extension_binary \ grpc_node.node 我尝试过了: build立从Electron的主要和从渲染器进程的grpc连接 安装依赖关系为npm install –unsafe-perm 但没有任何工作。 错误

你如何导入时间戳types?

我有问题导入node.js中的标准timestamp.proto // Some abc.proto file import "google/protobuf/timestamp.proto"; … … 当做这样的事情时: var grpc = require('grpc'); var protoDescriptor = grpc.load('abc.proto'); 我希望grpc从安装目录中获取timestamp.js,但事实并非如此。 如何在node.js中导入时间戳types 我有一个本地grpc安装(npm)? 我宁愿避免传递path等。事实上,grpc node.js包似乎并没有部署标准的原型文件。

访问节点中长时间运行的进程的grpcstreamvariables

我正在使用Node.js连接到使用执行长时间运行任务的gRPC的服务器。 在进行作业时,服务器将单向stream发送到客户端(Node.js应用程序)。 我需要实现一个停止button,并告诉closuresgRPCstream将停止正在进行的工作。 这是目前我的代码: let express = require('express'), router = express.Router(), grpc = require('grpc'), srv = grpc.load(__dirname + '/job_handler.proto').ns; let startJob = (jobID, parameters) => srv.createJob(jobID, parameters); router.post('/jobs', (req, res) => { let lengthyOperation = startJob(jobID, parameters); lengthyOperation.on('data', (data) => { console.log(`Data from lengthy operation: ${data}`); }); lengthyOperation.on('end', () => console.log('Lengthy operation completed'); }); res.setHeader('Location', […]

NodeJS gRPC:“预期但未提供的方法处理程序”

我翻阅了文档,还没有find解决scheme。 该应用程序松散地基于来自其文档的“sayHello”示例 ,但是每次代码运行Method handler for /eventComm.DatabaseRPC/InsertSingleDocument expected but not provided的警告Method handler for /eventComm.DatabaseRPC/InsertSingleDocument expected but not provided返回。 我的原始文件: service DatabaseRPC { rpc InsertSingleDocument (Doc) returns (Doc) {} } message Doc { required string name = 1; required int32 id = 2; } 我的gRPC服务器: function InsertSingleDocument (call, callback) { callback(null, { name: 'Hello ', id: 1 […]

用无头服务在kubernetes上进行gRPC(nodejs)循环

我有一个3 nodejs grpc服务器pod和一个grpc服务的无头kubernetes服务(返回所有3个pod ips与dnstesting与geod主机从pod内)。 然而,所有grpc客户端请求总是在一台服务器上结束。 根据https://stackoverflow.com/a/39756233/2952128 (最后一段),每轮调用应该可能2017年第一季度。我正在使用grpc 1.1.2 我尝试为new Client(address, credentials, options)提供{"loadBalancingPolicy": "round-robin"} new Client(address, credentials, options)并使用dns:///service:port作为地址。 如果我正确地理解了文档/代码,这应该传递到C核,并使用新实现的循环信道创build。 ( https://github.com/grpc/grpc/blob/master/doc/service_config.md ) 这是如何循环负载平衡器应该现在工作? 它已经发布与GRPC 1.1.2?

Nodejs应用程序如何调用grpc服务器

我试图弄清楚如何从我的nodejs应用程序中的javascript函数调用grpc服务器,并更新我的页面…我不知道如何pipe理它。 这是原始文件: syntax = "proto3"; package helloworld; service Greeter { rpc SayHello (HelloRequest) returns (HelloReply) {} } message HelloRequest { string name = 1; } message HelloReply { string message = 1; } 这是服务器: var PROTO_PATH = __dirname + '/helloworld.proto'; var grpc = require('grpc'); var hello_proto = grpc.load(PROTO_PATH).helloworld; function sayHello(call, callback) { callback(null, {message: 'Hello […]