从服务中删除 RPC 有哪些问题?

问题描述 投票:0回答:1

我们继承了一个 GRPC 服务,其服务定义如下:

service MyService
{
    rpc RPC1() returns (something)
    rpc RPC2() returns (something)
    rpc RPC3() returns (something)
    ...
    rpc RPC10() returns (something)
}

实际上,我们只使用 RPC1 到 RPC3,但其他 RPC 和终端客户端都不会只使用 RPC1 到 RPC3

为了清理我们的代码 - 我想删除其他 RPC(4 到 10)。我已经看到您可以将它们标记为已弃用,但为了使事情更清晰,我真的更愿意删除它们。

我见过一些帖子提到您不应删除字段,因为如果将来的字段再次使用该字段编号,我们可能会遇到字段编号问题。因此,对于字段,您可以执行类似 -

reserved 5 to 10;
的操作来防止使用这些字段编号。但我不确定在 RPC 方面是否也有类似的事情需要注意。

我想知道在从服务中删除 RPC 的情况下,存在哪些问题 - 提供了我上面强调的关于我们如何确信 RPC 4 到 10 未被使用的上下文。

grpc grpc-java grpc-c# grpc-dotnet
1个回答
0
投票

您可以删除 RPC 服务(服务基于名称而不是字段编号)。但请注意,如果您创建的新服务与已删除的服务同名,那么将来可能会遇到新旧客户端对不同服务使用相同服务名称的问题。因此,您可能希望将服务标记为已弃用,而不是删除它,或者使用其他方法来确保将来不会重复使用服务名称(例如在原型文件中进行注释)。

© www.soinside.com 2019 - 2024. All rights reserved.