Fel*_*oll 5 service proto grpc
您好,我目前正在研究 grpc,并且对重复字段与流的使用情况感到好奇。例如,假设我想实现电影座位预订服务。我面临的问题是,我想通知服务人员我想预订哪部电影的座位。我可以想到两种解决方案,首先:我将电影的 id 与我想要预订的每个座位一起发送,或者在流的开头发送一个,如下所示:
rpc ReserveSeatsForShowing(stream SeatReservationRequest) returns(Reservation);
message SeatReservationRequest{
oneof reservationOneOf{
int32 showingId = 1;
SeatReservation seatReservation = 2;
}
}
Run Code Online (Sandbox Code Playgroud)
或者使用像这样的重复字段
rpc ReserveSeatsForShowing(SeatReservationRequest) returns(Reservation);
message SeatReservationRequest{
int32 showingId = 1;
repeated SeatReservation seatReservation = 2;
}
Run Code Online (Sandbox Code Playgroud)
因为我之前没有真正使用过 grpc,所以不太确定该选择哪个选项或者是否有其他选项可用。
期待您的推荐
对于座位预订,我认为使用重复字段是有意义的。就像现实世界的场景一样,请求就像“我想要电影 X 的座位 A、B、C”,这更像是重复的方式而不是流式传输。因此,有效载荷非常小。此外,这种方式应该使用更少的服务器资源,因为它是一个批处理过程。
| 归档时间: |
|
| 查看次数: |
4416 次 |
| 最近记录: |