返回顶部
首页 > 资讯 > 精选 >获取 RPC 描述符失败
  • 956
分享到

获取 RPC 描述符失败

网络问题 2024-02-08 21:02:59 956人浏览 独家记忆
摘要

PHP小编草莓今天为大家介绍一个常见问题:在进行远程过程调用(rpc)时,可能会遇到“获取 RPC 描述符失败”的错误。这个错误通常意味着客户端无法与服务器建立有效的连接,可能是由于网

PHP小编草莓今天为大家介绍一个常见问题:在进行远程过程调用(rpc)时,可能会遇到“获取 RPC 描述符失败”的错误。这个错误通常意味着客户端无法与服务器建立有效的连接,可能是由于网络问题、服务端配置错误或者权限问题所导致。在本文中,我们将详细解释这个错误的原因,并提供一些解决方案来解决这个问题。无论您是初学者还是有经验的开发人员,都将从本文中获得有关解决“获取 RPC 描述符失败”错误的有用信息。

问题内容

我有以下原型文件:

service_myservice.proto

service MyService {
    rpc GetData(GetRequest) returns (GetResponse) {}
}

服务器.Go

type Server struct {
    pb.UnimplementedMyServiceServer
    config util.Config
}

// NewServer creates a new grpc server.
func NewServer(config util.Config) (*Server, error) {
    server := &Server{
        config: config,
    }

    return server, nil
}

然后在主包中我调用这个函数

func runGrpcServer(config util.Config) {
    server, err := gapi.NewServer(config)
    if err != nil {
        log.Fatal().Err(err).Msg("cannot create server")
    }

    grpcLogger := grpc.UnaryInterceptor(gapi.GrpcLogger)
    grpcServer := grpc.NewServer(grpcLogger)
    pb.ReGISterMyServiceServer(grpcServer, server)
    reflection.Register(grpcServer)

    listener, err := net.Listen("tcp", config.GRPCServerAddress)
    if err != nil {
        log.Fatal().Err(err).Msg("cannot create listener")
    }

    log.Info().Msgf("start gRPC server at %s", listener.Addr().String())
    err = grpcServer.Serve(listener)
    if err != nil {
        log.Fatal().Err(err).Msg("cannot start gRPC server")
    }
}

我正在使用 evans (https://GitHub.com/ktr0731/evans) 来测试我的 grpc 调用。 我的 gRPC 服务器正在运行,我可以使用 evans 连接到特定端口 (9090) 上的本地主机。

但是,当我在埃文斯中调用 show service 时,我得到以下响应:

localhost:9090> show service
+---------+-----+--------------+---------------+
| SERVICE | RPC | REQUEST TYPE | RESPONSE TYPE |
+---------+-----+--------------+---------------+
+---------+-----+--------------+---------------+
localhost:9090> call GetData
command call: failed to get the RPC descriptor for: GetData: service unselected

我认为如果我在 Server 结构中添加 pb.UnimplementedMyServiceServer ,那么这是向前兼容的。但显然,我缺少一些代码。

为了使 MyService 向前兼容,缺少什么部分?

解决方法

REPL模式下使用evans时,调用show service前应选择包,调用call GetData前应选择服务。

localhost:9090> show package
+-------------------------+
|         PACKAGE         |
+-------------------------+
| example                 |
| grpc.reflection.v1      |
| grpc.reflection.v1alpha |
+-------------------------+

localhost:9090> package example

example@localhost:9090> show service
+-----------+---------+--------------+---------------+
|  SERVICE  |   RPC   | REQUEST TYPE | RESPONSE TYPE |
+-----------+---------+--------------+---------------+
| MyService | GetData | GetRequest   | GetResponse   |
+-----------+---------+--------------+---------------+

example@localhost:9090> service MyService

example.MyService@localhost:9090> call GetData
id (TYPE_INT32) => 1

以上就是获取 RPC 描述符失败的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: 获取 RPC 描述符失败

本文链接: https://www.lsjlt.com/news/562063.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 获取 RPC 描述符失败
    php小编草莓今天为大家介绍一个常见问题:在进行远程过程调用(RPC)时,可能会遇到“获取 RPC 描述符失败”的错误。这个错误通常意味着客户端无法与服务器建立有效的连接,可能是由于网...
    99+
    2024-02-08
    网络问题
  • usb设备描述符请求失败的解决方法
    小编给大家分享一下usb设备描述符请求失败的解决方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!解决方法:首先按下键盘上的“win+r”组合键打开“运行”对话框...
    99+
    2023-06-15
  • 获取数据表中列的描述值
    前面有写过《MS SQL为字段添加说明》https://www.cnblogs.com/insus/p/12106589.html 现如今,我们获取这些字段的描述值。 先来看一句SELECT语句:   SELECT ...
    99+
    2016-01-12
    获取数据表中列的描述值
  • Linux下如何利用文件描述符恢复的成功失败实验
    这篇文章将为大家详细讲解有关Linux下如何利用文件描述符恢复的成功失败实验,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。数据误删除是作为初级运维人员常常遇到的“低级错误...
    99+
    2024-04-02
  • dedecms 获取描述信息限制字数的语法
    对于我刚刚刚开始对于获取到了描述的信息,但是有些字数简直是太多了,显示的样式不好看,所以我就希望限制字数,所以我来告诉你们获取描述信息限制字数的语法吧复制代码代码如下:[field:description functio...
    99+
    2022-06-12
    dedecms 描述信息 限制字数
  • jmap执行失败怎么获取heapdump
    本文小编为大家详细介绍“jmap执行失败怎么获取heapdump”,内容详细,步骤清晰,细节处理妥当,希望这篇“jmap执行失败怎么获取heapdump”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。正文在之前的O...
    99+
    2023-07-06
  • 动态域名获取失败怎么解决
    如果您的动态域名获取失败,可以尝试以下方法:1. 检查网络连接是否正常,确保您的设备已连接到互联网。2. 检查动态域名的配置是否正确...
    99+
    2023-06-11
    动态域名 域名
  • jmap执行失败如何获取heapdump详解
    目录正文使用jmap -F使用gcore使用Linux内核的coredump机制正文 在之前的OOM问题复盘中,我们添加了jmap脚本来自动dump内存现场,方便排查OOM问题。...
    99+
    2023-05-16
    jmap获取heapdump jmap执行失败
  • 小程序如何获取用户信息失败
    这篇文章主要介绍小程序如何获取用户信息失败,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!  在使用小程序时,很多人会不授权导致授权失败场景,但是小程序第二次不在启动授权信息弹层,遇到这种情况,为了用户体验我们需要这样...
    99+
    2023-06-26
  • php获取数据库内容失败怎么办
    PHP 是一门广泛应用于 Web 开发的编程语言,经常用来动态生成 HTML 页面或者处理 Web 服务器上的数据。在很多 Web 应用中,使用数据库是非常常见的,因为数据是被存储在数据库中的,所以在开发过程中需要使用 PHP 代码获取数据...
    99+
    2023-05-14
  • pgsql获取当前时间失败怎么解决
    如果在 pgsql 中获取当前时间失败,可能有几种可能的原因和解决方法: 时区设置错误:在 pgsql 中获取当前时间时,会受到...
    99+
    2024-04-09
    pgsql
  • 利用fnd_flex_keyval包轻松获取关键性弹性域组合描述字段
    转自: https://blog.csdn.net/rfb0204421/article/details/8204103 在Oracle Forms客户化开发中,如果遇到有在Form上提供关键性弹性域(以...
    99+
    2024-04-02
  • c++获取命令行参数失败怎么解决
    C++获取命令行参数失败的原因可能有很多种,下面列举几种常见的解决方案:1. 检查代码:确保你的代码正确获取命令行参数。你可以使用a...
    99+
    2023-09-23
    c++
  • 小程序使用getUserInfo获取用户信息失败
    1.使用getUserInfo wx.getUserInfo({ success: (res) => { console.log(res); this.setD...
    99+
    2023-09-05
    小程序 javascript 学习
  • 获取云服务器数据失败如何解决
    要解决云服务器数据获取失败的问题,可以按照以下步骤进行尝试:1. 检查网络连接:确保云服务器与网络连接正常,可以尝试通过其他设备或网...
    99+
    2023-08-29
    云服务器
  • 服务器动态域名获取失败怎么解决
    以下是一些可能的解决方法:1. 检查网络连接是否正常。如果网络连接不稳定或断开,可能导致动态域名获取失败。尝试重新连接网络或更换网络...
    99+
    2023-06-06
    动态域名 域名
  • 完美解决Jpush[获取sdk版本失败!]的问题
    错误日志如下:5-31 12:47:40.088 23896-23896/? E/JIGUANG-JCore: [JCoreGlobal] Get sdk version fail![获取sdk版本失败!]05-31 12:47:4...
    99+
    2023-05-31
    获取 sdk版本 失败
  • 怎么解决获取VirtualBox COM对象失败错误问题
    这篇文章主要介绍“怎么解决获取VirtualBox COM对象失败错误问题”,在日常操作中,相信很多人在怎么解决获取VirtualBox COM对象失败错误问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎...
    99+
    2023-06-22
  • springboot打成jar后获取classpath下文件失败怎么办
    这篇文章主要为大家展示了“springboot打成jar后获取classpath下文件失败怎么办”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“springboot打成jar后获取classpat...
    99+
    2023-06-20
  • springboot打成jar后获取classpath下文件失败的解决方案
    springboot打成jar后获取classpath下文件 代码如下: ClassPathResource resource = new ClassPathResource("...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作