iT邦幫忙

2023 iThome 鐵人賽

DAY 4
0
自我挑戰組

gRPC通訊框架認識與實作系列 第 4

gRPC通訊框架認識與實作【Day 04】

  • 分享至 

  • xImage
  •  

明天一大早要陪女朋友回老家看爸媽(算未來的岳父母...嗎?)
只好半夜趕工寫文章啦QQ

今天要開始來教大家設定maven跟環境
我使用的編譯器是intellij,java環境是1.8,如果你要用其他版本也沒有問題
首先我們先建立一個新的java專案,做出一個gRPC_file的module,之後分別要製作出server跟client兩個專案。
我們要先安裝intellij的plugin,開啟marketplace內搜尋Protocol Buffer,找這個圖示的安裝起來
https://ithelp.ithome.com.tw/upload/images/20230909/20147417fxK6NfNPAq.jpg

然後我們開始新增maven到pom.xml當中
首先是RPC的dependency依賴內容

<dependency>
  <groupId>io.grpc</groupId>
  <artifactId>grpc-netty-shaded</artifactId>
  <version>1.57.2</version>
  <scope>runtime</scope>
</dependency>
<dependency>
  <groupId>io.grpc</groupId>
  <artifactId>grpc-protobuf</artifactId>
  <version>1.57.2</version>
</dependency>
<dependency>
  <groupId>io.grpc</groupId>
  <artifactId>grpc-stub</artifactId>
  <version>1.57.2</version>
</dependency>
<dependency> <!-- necessary for Java 9+ -->
  <groupId>org.apache.tomcat</groupId>
  <artifactId>annotations-api</artifactId>
  <version>6.0.53</version>
  <scope>provided</scope>
</dependency>

還有下方的build也要新增,之前就是因為沒有裝build卡了好久,仔細看過後才發現要裝

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

都新增好以後讓maven重新整理一下,應該可以在maven裡面看到相關的plugins,最重要的當然就是protobuf這個plugin了
https://ithelp.ithome.com.tw/upload/images/20230909/201474179BBzxIy3nd.jpg

我們把他打開來看看裡面有什麼東東
https://ithelp.ithome.com.tw/upload/images/20230909/20147417VEpNcPrmRT.jpg

我們會使用到的主要是clean跟protobuf這兩個,打開protobuf,確認一下有出現complie跟custom,表示已經安裝成功了。

那昨天有提到protobuf,什麼是protobuf呢?
其實protobuf就是Protocol Buffer,是一種輕巧、高效率的結構序列儲存資料的方式,protobuf使用二進制的儲存資料型態,跟語言、平台都沒有關係,我們通常會用.proto檔的副檔名來命名。
也因此我們需要使用protobuf這個plugin來協助我們產生對應的程式碼。
只要先在proto檔裡面定義好我們的資料型態跟method,就可以使用protobuf自動生成所需要的程式碼。

參考資料

https://github.com/grpc/grpc-java
https://zhuanlan.zhihu.com/p/411315625


上一篇
gRPC通訊框架認識與實作【Day 03】
下一篇
gRPC通訊框架認識與實作【Day 05】
系列文
gRPC通訊框架認識與實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言