gRPC阅读日记(五)创建grpc的服务端和客户端

简介: gRPC阅读日记(五)创建grpc的服务端和客户端

gRPC阅读日记(五)

学下如何创建一个rpc server

当我们实现了所有的方法之后,我们需要去创建一个gRPC服务,这样客户端才能真正的请求我们的服务,让我们gRPC是如何创建服务的。

flag.Parse()
lis, err := net.Listen("tcp", fmt.Sprintf("localhost:%d", *port))
if err != nil {
  log.Fatalf("failed to listen: %v", err)
}
var opts []grpc.ServerOption
...
grpcServer := grpc.NewServer(opts...)
pb.RegisterRouteGuideServer(grpcServer, newServer())
grpcServer.Serve(lis)

在创建时我们做了:

  1. 指定监听接口:
    lis, err := net.Listen()
  2. 创建gRPC实例,grpc.NewServer()
  3. 将我们的服务注册到gRPC服务器上
  4. 调用 Serve() 做一个阻塞,直到进程被kill调或者 stop() 被调用的时候。

创建客户端和服务存根

完整客户端实现用例

为了去调用服务方法,首先需要创建gRPC channel去跟服务器建立联系,通过传入服务器地址和端口给grpc.Dial()

var opts []grpc.DialOption
...
conn, err := grpc.Dial(*serverAddr, opts...)
if err != nil {
  ...
}
defer conn.Close()

可以使用DialOptinos去设置认证凭据(例如TLS),将它传给grpc.Dial()。

当gRPC channel设置成功,我们需要一个客户端存根来执行RPC,可以从之前写好了.proto文件生成的pb包提供的NewRouteGuideClient方法来获取它。

也就是实例化客户端了

client := pb.NewRouteGuideClient(conn)

Reference

https://grpc.io/docs/languages/go/basics/


相关文章
|
4月前
|
人工智能 数据库连接 Go
Golang 搭建 WebSocket 应用(五) - 消息推送日志
Golang 搭建 WebSocket 应用(五) - 消息推送日志
47 1
|
5月前
|
运维 前端开发 Oracle
再有人问你WebSocket为什么牛逼,就把这篇文章发给他!
再有人问你WebSocket为什么牛逼,就把这篇文章发给他!2008年6月诞生了一个影响计算机世界的通信协议,原先需要二十台计算机资源才能支撑的业务场景,现在只需要一台,这得帮"抠门"老板们省下多少钱,它就是大名鼎鼎的WebSocket协议。很快在下一年也就是2009年的12月,Google浏览器就宣布成为第一个支持WebSocket标准的浏览器。WebSocket的推动者和设计者就是下面的Michael Carter,他设计的WebSocket协议技术现在每天在全地球有超过的设备在使用。
378 1
再有人问你WebSocket为什么牛逼,就把这篇文章发给他!
|
4月前
|
人工智能 JSON 安全
Golang 搭建 WebSocket 应用(三) - 实现一个消息推送中心
Golang 搭建 WebSocket 应用(三) - 实现一个消息推送中心
100 0
|
5月前
|
存储 前端开发 Go
golang怎么搭建Websocket聊天室服务端
连接的添加和移除 添加连接: 当一个新的WebSocket连接建立时,服务器需要将这个连接添加到全局的连接列表中。多个连接可能同时建立,从而导致多个并发操作试图修改连接列表。 移除连接: 当一个WebSocket连接断开时,服务器需要将这个连接从全局的连接列表中移除。如果多个连接同时断开,可能会导致并发修改连接列表。
|
存储 JavaScript 网络协议
WebSocket接口初体验
这两天在调试一个WebSocket的接口,折腾了一天的时间终于弄好了。现在对WebSocket的相关知识点做一个记录。主要从如下几个方面进行介绍。
297 0
WebSocket接口初体验
|
Go 流计算
gRPC阅读日记(七)客户端的RPC构建2
gRPC阅读日记(七)客户端的RPC构建2
|
Go 流计算
gRPC阅读日记(六)来看看客户端的rpc请求如何实现
gRPC阅读日记(六)来看看客户端的rpc请求如何实现
103 0
|
测试技术 API
【.NET6】gRPC服务端和客户端开发案例,以及minimal API服务、gRPC服务和传统webapi服务的访问效率大对决
前言:随着.Net6的发布,Minimal API成了当下受人追捧的角儿。而这之前,程序之间通信效率的王者也许可以算得上是gRPC了。那么以下咱们先通过开发一个gRPC服务的教程,然后顺势而为,再接着比拼一下minimal api服务和gRPC服务在通信上的效率。
472 0
【.NET6】gRPC服务端和客户端开发案例,以及minimal API服务、gRPC服务和传统webapi服务的访问效率大对决
|
测试技术 数据库
gRPC阅读日记(三)rpc请求官方用例的实现
gRPC阅读日记(三)rpc请求官方用例的实现
110 0
|
XML JSON 网络协议
gRPC笔记与相关问题
gRPC笔记与相关问题