您好,我目前正在研究 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,所以不太确定该选择哪个选项或者是否有其他选项可用。
期待您的推荐
我目前正在尝试在 docker compose 中设置 SQL Server,并且想使用指令在构建时创建数据库RUN。这不起作用,但是当我使用 sh 在正在运行的容器上执行相同的命令时,它起作用
我的撰写文件如下所示:
version: "3.7"
services:
mssql:
build: ./mssql
environment:
SA_PASSWORD: "Password12345!"
ACCEPT_EULA: "Y"
container_name: mssqlDB
ports:
- "1433:1433"
restart: always
Run Code Online (Sandbox Code Playgroud)
这是我的 Dockerfile:
FROM mcr.microsoft.com/mssql/server:2019-GA-ubuntu-16.04
COPY ./prod.sql /
RUN ./opt/mssql-bin/sqlcmd -S localhost -U SA -P "Password12345!" -Q "Create Database HelloWorld"
CMD ["/opt/mssql/bin/sqlservr"]
Run Code Online (Sandbox Code Playgroud)