符号数据库中的消息名称冲突。如果我未在符号数据库中注册消息会怎样?

时间:2019-07-15 07:09:26

标签: grpc grpc-python

我正在开发一种从各种外部来源调用多个gRPC服务的软件。消息名称可能会发生冲突,因为这些服务可能没有程序包名称,并且它们可能使用具有相同名称的消息。我不是那些服务的开发人员,所以我无法真正更改.proto文件。

据我了解,在Python的gRPC实现中,每条消息都会对_sym_db.RegisterMessage(<message>)进行函数调用,并且提取消息的DESCRIPTOR并将其用作将消息添加到符号中的键的数据库。因此,当gRPC试图使用相同的密钥将它们添加到符号数据库中时,来自不同文件的完全不相关的消息可能会发生冲突。

另一方面,我尝试注释掉自动生成的gRPC代码中对_sym_db.RegisterMessage(<message>)的所有引用,但一切仍然正常。据我了解,该数据库用于在首次导入后通过符号引用编译后的代码,但是即使根本不使用该数据库,仍然可以进行客户端调用。

任何人都可以确认这是对还是错? 另外,您认为在符号数据库中使用与消息的DESCRIPTOR不同的密钥时提高PR有意义吗?像文件+描述符之类的东西。

谢谢!

0 个答案:

没有答案