假设我有一个这样的结构定义:
struct SomeStruct {
1: optional binary content;
2: optional binary newConetent;
}
Run Code Online (Sandbox Code Playgroud)
在不影响部署的情况下弃用第一个字段(“内容”)的最佳实践是什么?新代码的部署将被部署到使用此 Thrift 结构的多个应用程序中?(假设某些应用程序在部署之前仍在使用“内容”字段)?
谢谢你!
推荐的解决方案是注释掉该字段,但将其保留在 IDL 中。这可以防止字段 ID 稍后被重复使用。否则当然会产生不兼容性。
如果“由客户端使用”意味着它们仅访问 RPC 的过时字段,那么对于 Thrift 来说这不是问题。Thrift 的行为就像新领域一样。
但是,如果您的意思是该字段用于序列化,并且旧数据包含需要以某种方式转换为新格式的相关信息,则必须在 IDL 中将该字段保持为活动状态。您可以考虑重命名该字段,以便 IDL 的目标受众可以看到它。
| 归档时间: |
|
| 查看次数: |
5674 次 |
| 最近记录: |