responseObserver.onNext(DeductReply.newBuilder()
.setCode(code)
.setMessage(message)
.build());
}
@Override
public void onError(Throwable t) {
log.error(“批量减扣库存异常”, t);
}
@Override
public void onCompleted() {
log.info(“批量减扣库存完成,共计[{}]件商品”, totalCount);
responseObserver.onCompleted();
}
};
}
}
开发客户端应用
- 在父工程grpc-turtorials下面新建名为double-stream-server-side的模块,其build.gradle内容如下:
plugins {
id ‘org.springframework.boot’
}
dependencies {
implementation ‘org.projectlombok:lombok’
implementation ‘org.springframework.boot:spring-boot-starter’
implementation ‘org.springframework.boot:spring-boot-starter-web’
implementation ‘net.devh:grpc-client-spring-boot-starter’
implementation project(’:grpc-lib’)
}
- 配置文件application.yml,设置自己的web端口号和服务端地址:
server:
port: 8082
spring:
application:
name: double-stream-client-side
grpc:
client:
gRPC配置的名字,GrpcClient注解会用到
double-stream-server-side:
gRPC服务端地址
address: ‘static://127.0.0.1:9901’
enableKeepAlive: true
keepAliveWithoutCalls: true
negotiationType: plaintext
-
启动类DoubleStreamClientSideApplication.java的代码就不贴了,普通的springboot启动类而已