首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

用Golang构建gRPC服务

创建gRPC服务端 首先让我们看一下怎么创建 RouteGuide服务器。有两种方法来让我们的 RouteGuide服务工作: 实现我们服务定义生成的服务接口:做服务实际要做的事情。...首先,让我们看一下最简单的类型 GetFeature,它只是客户端获取一个 Point,并从其 Feature数据库中返回相应的 Feature信息。...客户端流式RPC 现在,让我们看一些更复杂的事情:客户端流方法 RecordRoute,客户端获取点流,并返回一个包含行程信息的 RouteSummary。...(grpcServer, &routeGuideServer{})... // determine whether to use TLSgrpcServer.Serve(lis) 为了构建和启动服务器我们需要...设置gRPC通道后,我们需要一个客户端存根来执行RPC。我们使用 .proto生成的 pb包中提供的 NewRouteGuideClient方法获取客户端存根。

2K20

源码透析gRPC调用原理

导语 gRPC是什么,不用多说了。 gRPC如何用,也不用多说了 。 但是,gRPC是如何work的,清楚的理解其调用逻辑,对于我们更好、更深入的使用gRPC很有必要。...因此我们必须深度解析下gRPC的实现逻辑,在本文中,将分别从客户端和服务端来说明gRPC的实现原理。...其中,greet_client和greet_server文件中分别是grpc客户端和服务端的业务调用代码,包含了一个标准的gRPC调用过程。.... // 创建connection conn, err := grpc.Dial(address, grpc.WithInsecure()) if err !...服务端的调用流程: grpc server graph.jpg 总结 上面的就是关于gRPC调用逻辑的分析,gRPC中的代码十分复杂,本文只涉及了其调用逻辑的分析,在分析展示源码时,省略的一些错误处理或者数据处理的代码

18.1K126

C++ gRPC 异步 API 实例与优势

原问题: 我正在用 gRPC 构建一个要求高吞吐量的服务。但是我现在用 C++ 同步式 gRPC 编写的程序的吞吐量并不高。...它使用 cq->Next(),不断地完成队列中获取下一个事件,并调用对应的 Proceed() 方法(也就是我们用于处理不同状态的请求的方法)。...ServerContext ctx_; // 客户端接收到了什么 HelloRequest request_; // 向客户端发送回什么 HelloReply reply...所以假设第一个请求正在等待它的回复数据传输完成时,一个新的请求到达了,cq->Next() 可以获得新请求产生的事件,并开始并行处理新请求,而不用等待第一个请求的传输完成 另一方面,同步 API总是会等待请求的完全完成(开始接收到完成回复...最佳性能实践 由 gRPC C++ 性能小注 提供的性能最佳实践是创建与 CPU 核心数量一样多的线程,并为每一个线程使用一个完成队列(CompletionQueue)。

1.3K20

我们为什么 REST 转向 gRPC

我们也是 REST 开始的,但最近我们决定改用 gRPCgRPC是谷歌开发的一个远程调用框架,现在已开源。尽管它已经出现了多年,但网上关于人们为什么要用它或者为什么不用它的信息并不多。...下面的例子与上述的 gRPC API 相当。...这个时候,我们决定试一试 gRPC。要通过 gRPC 发送结果,只需要在.proto 文件中加入 stream 关键字。...开发者的角度来看,这比实现轮询 API 要简单得多。 注意事项 gRPC 也有一些不足之处,不过它们都与相关的开发工具有关,并不是 gRPC 本身的问题。...结论 尽管开发 gRPC API 在前期需要做更多的工作,但拥有清晰的 API 定义和对流式传输的支持对我们来说更重要。在构建新的内部服务时,gRPC 将会是我们的首选。

1.6K60

gRPC安全设计理解双向证书方案

本文主要通过介绍gRPC的双向认证方案,理清证书领域的知识。...利用消息摘要可以保障数据的完整性和一致性,它的特点如下: 单向 Hash 算法,明文到密文的不可逆过程,即只能加密而不能解密; 无论消息大小,经过消息摘要算法加密之后得到的密文长度都是固定的; 输入相同...单向认证的过程,客户端服务器端下载服务器端公钥证书进行验证,然后建立安全通信通道。单向认证流程中,服务器端保存着公钥证书和私钥两个文件,整个握手过程如下: ?...with the credentials opts := []grpc.ServerOption{grpc.Creds(creds)} // create a gRPC server...默认提供了多种 OAuth 2.0 认证机制,假如 gRPC 应用运行在 GCE 里,可以通过服务账号的密钥生成 Token 用于 RPC 调用的鉴权,密钥可以环境变量 GOOGLE_APPLICATION_CREDENTIALS

2.5K30

在 C#和ASP.NET Core中创建 gRPC 客户端和服务器

gRPC 实际上已经成为 RPC 框架的行业标准,Google 内外的组织都在使用它来微服务到计算的“最后一英里”(移动、网络和物联网)的强大用例。...gRPC 客户端和服务器可以在各种环境中运行和相互通信( Google 内部的服务器到您自己的桌面),并且可以用 gRPC 支持的任何语言编写。...此外,最新的 Google API 将具有其接口的 gRPC 版本,让您可以轻松地将 Google 功能构建到您的应用程序中。...github.com/ccf19881030/GrpcGreeterDemo 我们git clone https://github.com/ccf19881030/GrpcGreeterDemo.git 源代码到本地后...The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#) gRPC in 5 minutes | Eric Anderson & Ivy Zhuang

17800
领券