hse*_*sen 10 java protocol-buffers grpc
我无法在线找到任何在项目中使用gRPC和protobuf的"最佳实践".我正在实现一个事件源服务器端应用程序.核心定义域聚合,事件和服务,而不具有外部依赖性.gRPC服务器调用传递请求对象的核心服务,最终转换为正在发布的事件.事件使用protobuf序列化并在线上发布.我们目前处于两难境地,即我们的事件是否应该是protobuf直接生成的类,还是我们应该将核心和事件分开并实现mapper/serializer层来转换protobuf < - > core之间的事件
如果我们没有考虑另一种方法,请指导我们:)
谢谢您的帮助.
小智 6
域模型对象和数据传输对象(Protobuf消息)应尽可能分开.为此,最好的方法是将您的域模型对象转换为Google Protobuf消息,反之亦然.我们制作了一个protobuf转换器,使其非常简单.
Protobuf 非常适合序列化和向后兼容性,但不擅长成为一流的 Java 对象。目前无法向原型添加自定义功能。通过在存根层使用 Protobuf,将它们包装在事件 Pojo 中,并在内部传递它们,您可以获得很多好处:
public final class Event {
private final EventProto proto;
public void foo() {
// do something with proto.
}
}
Run Code Online (Sandbox Code Playgroud)
大多数项目不会经常更改其 .proto 文件,而且几乎不会以向后不兼容的方式(无论是有线还是 API)。根据我的经验,由于原始更改而必须更改大量代码从来都不是问题。
| 归档时间: |
|
| 查看次数: |
2600 次 |
| 最近记录: |