grpc既protocol buffers 的使用

前言

   之前在写一篇关于nacos源码解析的时候,有意的回避了关于底层数据传输层的解读,本文也不会深入底层做源码分析,本文意在说明grpc和proto的使用

protocol buffers的介绍

   protocol buffers 是一种灵活,高效,自动化机制的结构数据序列化方法

使用

   依赖:

        ​​​​

<dependency>
    <groupId>io.grpc</groupId>
    <artifactId>grpc-protobuf</artifactId>
    <version>${grpc.version}</version>
</dependency>

<dependency>
    <groupId>io.grpc</groupId>
    <artifactId>grpc-stub</artifactId>
    <version>${grpc.version}</version>
</dependency>

<dependency>
    <groupId>io.grpc</groupId>
    <artifactId>grpc-netty-shaded</artifactId>
    <version>${grpc.version}</version>
</dependency>

 其中grpc.version=1.47.0

添加java对.proto文件的编译器,需要在pom文件中添加如下插件:

<build>
    <extensions>
        <extension>
            <groupId>kr.motd.maven</groupId>
            <artifactId>os-maven-plugin</artifactId>
            <version>1.5.0.Final</version>
        </extension>
    </extensions>
    <plugins>
        <plugin>
            <groupId>org.xolstice.maven.plugins</groupId>
            <artifactId>protobuf-maven-plugin</artifactId>
            <version>0.5.0</version>
            <configuration>
                <protocArtifact>com.google.protobuf:protoc:${protoc.version}:exe:${os.detected.classifier}</protocArtifact>
                <pluginId>grpc-java</pluginId>
                <pluginArtifact>io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}</pluginArtifact>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>compile</goal>
                        <goal>compile-custom</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

其中:

io.grpc.version=1.17.0      protoc.version = 3.19.2

添加完如上依赖之后,可以查看一下到如下的信息:

编写.proto文件

   本篇文章不做深入的proto语法分析,只提供简单的使用案列,部分简单注释

在src/main下创建新文件夹proto(编译器默认编译路径),然后编写.proto文件

 编写完proto文件之后,就可以使用maven的compile命令编译文件,生产.class文件,生成的class文件如下:

 grpc的使用

      服务端

                

 添加实现类,编写server服务端启动代码:

      客户端

     

以上即是grpc既proto的使用demo 

创作不易,如果觉得有用,请点赞收藏!如果有问题,欢迎留言讨论!

猜你喜欢

转载自blog.csdn.net/qq_39203337/article/details/125539120