设为首页 收藏本站
查看: 1922|回复: 0

[经验分享] grpc-java在Windows平台上的部署和开发

[复制链接]

尚未签到

发表于 2017-6-29 22:57:29 | 显示全部楼层 |阅读模式
  【前言】 操作系统 :Windows 10    IDE :IntelliJ>
1、新建空的Maven工程(输入名称一路next即可 )
  点击finish后会为工程下载一些必要的插件,过程可能有点慢,取决于你的网速,
  
如果不想后面折腾,请耐心等他下载完成。
  
DSC0000.png
  所需插件下载完成后注意看右下角提示,pop.xml是当前工程的maven配置文件,
  
用于从远程maven仓库添加你需要的依赖。当pop.xml配置文件发生改变时,会有
  
此提示。建议选择import changes,选择enable auto-import的话会在你修改此
  
配置文件时自动添加依赖,个人觉得没有必要。

2、准备好相应的插件和构建工具

  因为grpc-java使用protocol buffer作为数据交换格式,所以要为IntelliJ>  
Protobuf Support插件,用于IDE支持:注意这里别选错Google Protocol Buffers
  
support插件了,这个插件虽然下载量很高,但还不支持proto3
DSC0001.png


3、添加jrpc和protocal buffer的相关maven依赖
  修改pop.xml文件,引入jrpc,目前1.0.1是最新版:
  

<properties>  <grpc.version>1.0.1</grpc.version><!-- CURRENT_GRPC_VERSION -->
  
</properties>
  
<dependencies>
  <dependency>
  <groupId>io.grpc</groupId>
  <artifactId>grpc-netty</artifactId>
  <version>${grpc.version}</version>
  </dependency>
  <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>
  
</dependencies>
  

  修改pop.xml文件,引入构建工具:
  

<build>  <extensions>
  <extension>
  <groupId>kr.motd.maven</groupId>
  <artifactId>os-maven-plugin</artifactId>
  <version>1.4.1.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:3.1.0: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>
  

  注意:protoc的版本必须匹配protobuf-java。 由于上面protobuf-java的版本是
  
依赖grpc的,所以这里直接使用jrpc的版本号就可以了。
  修改完pop.xml文件后,点击右下角的import changes,开始从maven远程下载
  
依赖的库。这个过程同样有些长,取决于网络。如果不想后面折腾,请耐心等候
  
下载完成。
DSC0002.png

  一直到这里其实都是为jrpc开发做准备的配置工作。

4、编写*.proto文件:
  
新建一个proto目录,然后创建helloworld.proto文件
  

syntax = "proto3";  

  
option java_multiple_files = true;
  
option java_package = "io.grpc.examples.helloworld";
  
option java_outer_classname = "HelloWorldProto";
  
option objc_class_prefix = "HLW";
  

  
package helloworld;
  

  
service Greeter {
  rpc SayHello (HelloRequest) returns (HelloReply) {}
  
}
  

  
message HelloRequest {
  string name = 1;
  
}
  

  
message HelloReply {
  string message = 1;
  
}
  

5、编译proto文件
  右键工程——>Maven——>Generate source and Update folders
  编译生成的代码在target目录下,因为maven将开发环境和源代码进行隔离,这种
  
默认的良好习惯会保证代码不混乱:
DSC0003.png


6、编写Server和Client:
DSC0004.png

DSC0005.png


5、Run Hello World!
  启动Server:
DSC0006.png

DSC0007.png

  客户端请求:
DSC0008.png

DSC0009.png

  
注: 如果在运行或编译过程中出现任何java版本的问题请检查
  
1:Project Structure里确认两个地方:Project sdk以及project language level
  
2:Project Structure->Modules里Sources里的Language level
  
3:Setting->java Compiler->Project/module target bytecode Version
  
这三个地方需要一致

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-389447-1-1.html 上篇帖子: windows下PHP批量生成打包android程序APK-渠道txt植入apk文件 下篇帖子: MySQL 5.6 for Windows 解压缩版配置安装(win 10 64位亲测)附安装包下载链接
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表