grpc在java程序中的使用

grpc在java程序中的使用

依赖引入


<!--引入grpc-->
		<dependency>
			<groupId>com.google.protobuf</groupId>
			<artifactId>protobuf-java</artifactId>
			<version>3.6.1</version>
		</dependency>

		<dependency>
			<groupId>io.grpc</groupId>
			<artifactId>grpc-netty-shaded</artifactId>
			<version>1.15.1</version>
		</dependency>
		<dependency>
			<groupId>io.grpc</groupId>
			<artifactId>grpc-protobuf</artifactId>
			<version>1.15.1</version>
		</dependency>
		<dependency>
			<groupId>io.grpc</groupId>
			<artifactId>grpc-stub</artifactId>
			<version>1.15.1</version>
		</dependency>

引入插件

在pom.xml中的plugins中加入maven自动生成grpc的java代码插件

<!-- compile proto file into java files. -->
			<plugin>
				<groupId>com.github.os72</groupId>
				<artifactId>protoc-jar-maven-plugin</artifactId>
				<version>3.6.0.1</version>
				<executions>
					<execution>
						<phase>generate-sources</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<includeMavenTypes>direct</includeMavenTypes>

							<inputDirectories>
								<include>src/main/resources/protos/</include>
							</inputDirectories>

							<outputTargets>
								<outputTarget>
									<type>java</type>
									<outputDirectory>src/main/java</outputDirectory>
								</outputTarget>
								<outputTarget>
									<type>grpc-java</type>
									<pluginArtifact>io.grpc:protoc-gen-grpc-java:1.15.0</pluginArtifact>
									<outputDirectory>src/main/java</outputDirectory>
								</outputTarget>
							</outputTargets>
						</configuration>
					</execution>
				</executions>
			</plugin>

定义protobuf文件

文件名:VideoRdd.proto,文件内容如下

syntax = "proto3";

package com.genersoft.iot.vmp.grpc;

message StartRDDRequest{
   int32 video_id=1;  //视频流id
   string rtmp_dir=2;  //视频流地址
}

message StartRDDResponse{
   int32 open_info=1;  // 返回打开操作成功信息(1成功,0失败)
}

message StopRDDRequest{
   int32 video_id=1;  //视频流id
}

message StopRDDResponse{
   int32 close_info=1;  // 返回关闭操作成功信息(1成功,0失败)
}

service VideoRDD{  //开始视频道路缺陷检测
   rpc start_rdd(StartRDDRequest) returns(StartRDDResponse){}
   rpc stop_rdd(StopRDDRequest) returns(StopRDDResponse){}
}

生成java代码

使用maven的打包工具,maven package后会在指定的目录下生成VideoRdd.javaVideoRDDGrpc.java两个文件

自定义业务逻辑

继承生成的VideoRDDImplBase类,并覆写相关的方法代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值