精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何基于gRPC溝通微服務框架

開發 架構
gRPC 是一個開源框架(由 Google 創建),是一個通用的 RPC 框架,用于大規模構建具有高性能的網絡應用程序。實現有多種語言版本,并且支持跨平臺通信。

本文我們來講解一下如何使用 gRPC構建微服務,gRPC是一個開源框架,可用于構建可擴展且高性能的微服務并創建服務之間的通信。

背景

隨著企業越來越多地轉向微服務,對構建這些微服務的低延遲和可擴展框架的需求也在增加。為了滿足這一需求,各種工具和框架提供商正加快滿足微服務需求。同時從構建大型微服務應用程序的經驗中學習,技術專業人士分享他們對可重用組件的知識,以便其他人可以構建具有相同規模和性能的架構。

什么是 gRPC

gRPC 是一個開源框架(由 Google 創建),是一個通用的 RPC 框架,用于大規模構建具有高性能的網絡應用程序。實現有多種語言版本,并且支持跨平臺通信。

使用場景

gRPC 非常適合服務與服務之間的 RPC 通信。在這里,我們將使用 Java 來實現微服務和相關框架,讓它的功能更齊全。為了讓其他服務可以訪問它,我們將創建一個包裝 REST 服務,這個服務將使用 gRPC 客戶端與 gRPC 服務進行通信。

準備工作

我們需要設置一個基礎環境來構建和運行示例?;疽笫前惭b Java 和 Maven。gRPC 工具和服務器運行時庫等其他依賴項,將在構建過程中自動下載。有關構建應用程序所需的核心依賴項,請參閱下面的代碼。

<dependency>
<groupId>io.github.lognet</groupId>
<artifactId>grpc-spring-boot-starter</artifactId>
<version>4.5.0</version>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>

<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>${mapstruct.version}</version>
</dependency>

核心功能

gRPC 基本上是一種與平臺和編碼無關的協議。這意味著,您可以使用任何類型的編碼,如二進制、JSON、XML 等,但推薦的方法是使用“protobuf”,它使用專門的序列化/反序列化機制支持二進制編碼??刹灏卧O計允許用戶對其進行擴展以支持所需的平臺和堆棧。

protobuf 的核心構造是 proto IDL(接口定義語言),定義了消息類型和服務定義。它還提供了為所需平臺生成模型類和服務接口的工具。

消息類型

我們可以從在.proto文件中定義消息類型的 proto 定義開始??聪旅娴睦印?/p>

message AccountProto {    
int32 accId = 1;
string accName = 2;
string accBalance = 3;
bool status = 4;
...
}

有關數據類型和關鍵字的完整參考,請參閱proto3文檔。

Protobuf 提供了一種工具,可以根據適用于您的平臺/編程語言的消息定義為模型類生成代碼。以下命令將根據給定的消息定義在 Java 中生成account類。

$ > protoc -I=proto-demo --java_out=proto-demo account.proto

服務定義

gRPC 服務定義是一組需要對定義的消息類型執行的操作。這些操作可以采用以下四種通信形式之一:

  • 單通道 RPC — 它是最簡單的通信形式。它本質上是同步的,允許用戶以阻塞模式發送請求并等待響應,直到服務器完成處理。
  • 流式 RPC — 在這種形式中,客戶端一次性發送數據,但服務器以流的形式返回響應。
  • 客戶端流式 RPC — 與服務器流式傳輸不同,在這種形式中,客戶端以流的形式發送請求的數據,服務器將數據作為一個整體返回。
  • 雙向流式 RPC — 在這種形式中,服務器和客戶端都支持根據請求和響應流式傳輸數據。

具有標準 CRUD 操作的消息類型的示例服務定義將采用以下輸入:

service AccountService {
rpc GetAccount (google.protobuf.Int32Value) returns (AccountProto);
rpc GetAllAccounts (google.protobuf.Empty) returns (stream AccountProto);
rpc CreateAccount (AccountProto) returns (AccountProto);
rpc UpdateAccount (AccountProto) returns (AccountProto);
rpc DeleteAccount (google.protobuf.Int32Value) returns (google.protobuf.Empty);
}

gRPC-Java 實現提供的擴展工具有助于根據域邏輯和服務器存根生成用戶需要實現的服務接口,客戶端將使用這些存根調用已部署的服務。

$ > protoc -I=grpc-demo\src\main\proto --java_out=grpc-demo\src\main\proto account.proto

標準服務器和客戶端

gRPC-Java 庫提供了一個響應式服務器實現(基于 Netty)來部署您的服務和一個阻塞/非阻塞客戶端實現來連接您的服務和其他服務。

您需要注冊您的服務實現并以編程方式啟動服務器。

server = ServerBuilder.forPort(port), .addService(new GreeterImpl()).build().start();

在此處找到 GitHub 參考。

要連接到部署在基于 Netty 的 gRPC 服務器上的服務,您需要創建一個消息通道并將其與生成的服務器存根連接以進行調用。

ManagedChannel channel = ManagedChannelBuilder.forTarget(target).usePlaintext().build(); 
blockingStub = GreeterGrpc.newBlockingStub(channel);
HelloRequest request = HelloRequest.newBuilder().setName(name).build();
HelloReply response = blockingStub.sayHello(request);

在此處找到 GitHub 參考。

網絡客戶端

還有一個 gRPC Web 模塊,允許 Web 客戶端無縫訪問您的 gRPC 服務。他們的早期版本支持通過反向代理連接 Web 客戶端,但現在可以在沒有中間代理的情況下進行。

另一種方法是使用 REST/GraphQL 協議將包裝服務層暴露給面向外部的世界,并通過 gRPC 客戶端連接。

數據映射和持久性

我們可能需要在其之上添加另一層,以使用 Hibernate 等數據訪問庫創建功能齊全的域服務。與 Hibernate 或任何數據庫一樣,需要以某種方式修飾所需的實體,而這對于 protobuf 模型生成的模型可能不可行。因此,我們可能需要一些映射邏輯來將模型類轉換為實體類。一個這樣好的庫是 MapStruct,它基于 bean 約定進行自動映射。我們只需要提供映射接口:

@Mapper
public interface AccountProtoMapper {
Account map(AccountProto accountProto);
AccountProto map(Account account);
}

第三方支持

為了進一步簡化整個構建和運行環境,有一些流行的第三方 Maven 插件和庫也有幫助。

1. 運行與 Build 集成的 Proto Tool

協議緩沖區 Maven 插件(由 Xolstice 提供)運行 proto 工具及其擴展,以及從*.proto文件構建和生成源代碼。它還附加了 .proto*文件作為項目的資源。請參閱示例配置以生成 Java 代碼。

<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>

參考可以在這里找到。

2. 生成映射器類

MapStruct 庫支持生成消息類型的映射器類,這些映射器類可以將消息從/到類的實體。它提供了一個注解處理器,通過在構建時分析指定的注解來生成一個映射器類。Maven編譯插件參考下面的配置。

<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
</path>
</annotationProcessorPaths>
</configuration>

3.自動啟動gRPC服務器并注冊服務實現

默認情況下,gRPC 服務器不會與 web 服務器(在本例中為 Netty)一起啟動。此外,它需要在服務器啟動之前注冊所有 gRPC 服務。LogNet 的 gRPC Spring Boot 會自動掃描所有帶有@GRpcService注解的類,并向服務器構建器注冊服務定義。構建服務器后,它會在 Spring 應用程序屬性中配置的端口上自動啟動 gRPC 服務器。

除了注冊服務和啟動服務器外,它還支持自動配置的安全、健康檢查和服務發現。有關詳細信息,請參閱此處。

GitHub 上提供了上述方法的完整示例實現。

差異化

  • 谷歌構建 gRPC 是出于從零開始構建大規模微服務的學習需求。大多數流行的微服務框架仍然缺乏對性能和跨平臺支持的要求,因為沒有大型系統可以在單個堆棧和單個編碼中構建。
  • 最受歡迎的是對 HTTP/2 的支持,它仍然是許多提供商的路線圖。它為在單個 TCP 連接上使用多路復用非阻塞數據流的二進制線路傳輸提供了優勢。進一步支持標頭壓縮,它提供了額外的性能優勢。
  • 除了支持 protobuf 作為主要編碼機制外,它還增加了對基于 JSON 的服務的支持,這些服務可以很容易地被低端客戶端使用。雖然 protobuf 是實施 gRPC 的推薦方式,但 Google 增加了對 FlatBuffers 的支持,并增加了內部和整個行業的采用率。
  • 初始版本支持通過反向代理(如基于 Envoy 和 Ngnix 的系統)公開 gRPC 服務。gRPC Web 的最新發展彌補了這一差距,并通過跨 JavaScript 庫采用 HTTP/2 增加了對向 Web 客戶端公開 gRCP 服務的支持。進一步的開發正在進行中,以增加對 Angular 和 React 等流行 Web 框架的支持。
  • 借助功能齊全的開發堆棧,它還為單元測試助手(如InProcessServer和InProcessChannelBuilder.

采用

Google 在其內部工具和平臺上使用它,例如 Bigtable、Pub/Sub、Speech 和 TensorFlow。

CoreOS 是 gRPC 的早期采用者,并在其服務發現工具和容器引擎中增加了支持。

Microsoft 是 gRPC 的高級采用者,并增加了對其 Web API 和構建工具的支持,以簡化開發人員無縫構建服務的工作。

現在,越來越多的項目在整個行業中使用它,例如 Docker、Square、Netflix 和 Cisco 等開源開發人員。

替代方法

除了構建 gRPC 之外,Google 的應用程序還提供了文章中提到的工具/庫和 Spring Boot 啟動框架。一些專門的微服務框架為 gRPC 服務實現提供了開箱即用的支持。

  • Quarkus gRPC
  • Asp.NET gRPC
  • Akka gRPC
  • Salesforce gRPC

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2017-05-25 10:32:41

Docker微服務容器

2018-12-03 08:00:00

微服務gRPC

2018-12-17 16:39:20

Golang微服務

2025-10-20 07:17:10

Go語言微服務

2022-10-17 00:14:55

微服務稅mock代理服務

2017-09-09 16:22:51

PHP-MSF服務器服務框架

2023-02-17 18:06:33

微服務架構

2021-03-02 16:25:52

微服務架構技術

2020-11-27 10:50:06

微服務架構框架

2021-12-29 08:30:48

微服務架構開發

2024-11-06 16:27:12

2022-03-31 08:15:38

微服務服務拆分架構

2021-07-07 10:21:26

技術

2022-03-29 10:36:32

技術架構微服務

2021-12-02 16:20:17

開源微服務框架

2019-07-12 08:45:07

開源微服務框架

2022-05-16 08:07:15

微服務容器通信

2022-06-07 08:19:30

gRPCBallerina微服務

2015-07-29 16:23:07

2018-06-01 23:08:01

Spring Clou微服務服務器
點贊
收藏

51CTO技術棧公眾號

欧美三级日韩在线| 国产三级精品三级| 97视频在线观看播放| 少妇特黄一区二区三区| 黄色精品视频网站| 午夜精品一区二区三区三上悠亚| 欧美一区观看| www.日韩高清| 日本欧美一区二区在线观看| 久久精品电影一区二区| 一本色道综合久久欧美日韩精品| yw.尤物在线精品视频| 亚洲一区中文日韩| 亚洲欧美丝袜| 日本在线一二三| 激情综合亚洲精品| 国产91精品网站| 日本特黄一级片| 99久久99久久精品国产片果冰| 亚洲国产欧美自拍| 中文字幕在线视频一区二区三区| 性欧美1819sex性高清| 亚洲一区在线观看视频| 色阁综合av| 日本免费一区二区三区最新| 国产不卡高清在线观看视频| 国产精品一区二区久久国产| 国产免费一级视频| 日韩一级在线| 欧美激情亚洲自拍| 色婷婷在线视频观看| 不卡中文字幕| 亚洲欧洲一区二区三区久久| 日本丰满少妇裸体自慰| 视频二区欧美| 91精品国产全国免费观看| 日本久久精品一区二区| 国产精品一区二区av影院萌芽| 亚洲一区二区三区不卡国产欧美| 亚洲综合激情五月| 亚洲成人三级| 国产亚洲精品久| 久久久久se| 五月婷婷六月丁香综合| 成人免费视频视频在线观看免费| 91福利视频导航| 国产丰满果冻videossex| 精品一区二区三区久久久| 国产精品永久在线| 中文字幕人妻色偷偷久久| 久热re这里精品视频在线6| 欧美专区国产专区| 欧美黄色一级大片| 日韩av电影免费观看高清完整版| 日韩av手机在线看| 精品一区二三区| 日本欧美韩国一区三区| 国产精品日韩电影| 中文字幕无线码一区| 美美哒免费高清在线观看视频一区二区| 国产精品99蜜臀久久不卡二区| 亚洲天堂五月天| 免费观看日韩av| 成人网在线免费观看| 国产女人高潮的av毛片| 国产v综合v亚洲欧| 久久99欧美| 国产中文在线观看| 国产精品美女久久久久久久久 | 亚洲国产国产| 国产亚洲精品久久久| 毛片视频免费播放| 亚洲国产精品久久久久蝴蝶传媒| 欧美激情影音先锋| 国产成人在线视频观看| 青娱乐精品在线视频| 91最新在线免费观看| 六月婷婷中文字幕| 久久影院午夜论| 天堂v在线视频| 男女在线视频| 色噜噜狠狠成人中文综合| 婷婷丁香激情网| 精品一区视频| 亚洲另类激情图| 蜜桃av.com| 最新日韩在线| 国产欧美精品va在线观看| 精品免费久久久| 久久久国产精华| 色婷婷777777仙踪林| 咪咪网在线视频| 欧美美女网站色| 精品视频站长推荐| 日韩欧美视频在线播放| 久久久久久久一区二区三区| 亚洲天堂五月天| 欧洲av一区二区嗯嗯嗯啊| 日本男女交配视频| 日日夜夜天天综合| 日韩欧美成人激情| 精品无码人妻一区二区免费蜜桃| 欧美激情麻豆| 国产精品福利网站| 欧美一级一区二区三区| 国产精品久久久久久亚洲伦 | 国产精品v欧美精品v日韩| 欧洲伦理片一区 二区 三区| 亚洲蜜臀av乱码久久精品蜜桃| 欧美老熟妇喷水| 日本一区二区三区电影免费观看 | www国产在线观看| 一本在线高清不卡dvd| 熟妇无码乱子成人精品| 波多野结衣在线播放一区| 69av在线播放| 亚洲第一天堂在线观看| 国产精品第13页| 日韩一级片播放| 另类春色校园亚洲| 欧美猛男性生活免费| 影音先锋国产在线| 久久综合色天天久久综合图片| 蜜桃视频一区二区在线观看| 美女视频一区| 日韩在线免费视频观看| 蜜臀尤物一区二区三区直播| 91免费在线看| 国产精品专区在线| 97se亚洲| 欧美日韩第一视频| 国产xxxx在线观看| 亚洲素人一区二区| 国内自拍第二页| 久久福利综合| 国产精品欧美日韩久久| 精品999视频| 色综合天天综合色综合av| 在线免费观看污视频| 尤物网精品视频| 国产精品.com| a国产在线视频| 亚洲第一精品夜夜躁人人躁| 精品午夜福利在线观看| 成人一区二区三区在线观看| 国产精品日韩三级| 超碰cao国产精品一区二区| 久久99精品久久久久久青青91| 国产精品探花视频| 亚洲人成精品久久久久| 欧美一级免费在线| 欧美三级网页| 国产日韩欧美综合精品| 国产传媒av在线| 亚洲精品久久久久久久久| 中文字幕激情小说| 国产亚洲美州欧州综合国| 一道本在线免费视频| 国产精品成人a在线观看| 91在线观看免费| 青春草视频在线观看| 欧美电影精品一区二区| 日本一级一片免费视频| 久久久亚洲综合| 精品久久久久久中文字幕2017| 99九九热只有国产精品| 国产福利一区二区三区在线观看| 678在线观看视频| 日韩久久精品成人| 中文字幕欧美色图| 亚洲一区二区综合| 成年人网站免费在线观看| 日韩影院精彩在线| 中国一级大黄大黄大色毛片| 精品三级av| 国产精品欧美日韩久久| 久草在线新免费首页资源站| 亚洲精品少妇网址| 在线观看毛片网站| 亚洲国产精品久久久久婷婷884| 国产精品久久久免费观看| 免费成人美女在线观看.| 可以免费看的黄色网址| 久久丝袜视频| 国产欧美精品日韩精品| www欧美xxxx| 中文日韩电影网站| 亚洲欧美国产高清va在线播放| 色又黄又爽网站www久久| 三级av在线免费观看| 94色蜜桃网一区二区三区| 红桃视频 国产| 国产精品外国| 99热这里只有精品7| 亚洲人亚洲人色久| 91福利入口| www.一区| 777777777亚洲妇女| 黄色在线论坛| 亚洲色图欧美制服丝袜另类第一页| 国产免费一区二区三区最新不卡| 狠狠久久五月精品中文字幕| 成人在线观看免费完整| 久久久不卡网国产精品一区| 成人在线观看一区二区| 美女视频黄久久| 免费av观看网址| 欧美精品国产一区| 亚洲狠狠婷婷综合久久久| 欧美一区二区三区久久| 91亚洲精华国产精华| 四虎4545www精品视频| 国内精品小视频在线观看| 黄色免费在线观看| 中文字幕综合一区| 精品久久久久一区二区三区 | 久久一区二区电影| 国产高清精品网站| 青青草原国产在线视频| 毛片一区二区| 久久久久免费看黄a片app| 欧美欧美全黄| 国产精品视频一二三四区| 亚洲a一区二区三区| 亚洲毛片aa| 成人一区二区| 日韩精品不卡| 国产在线观看91一区二区三区| 另类小说综合网| 国产96在线亚洲| 国产成人免费电影| 亚洲欧洲国产精品一区| 91免费看网站| 视频国产精品| 粉嫩av四季av绯色av第一区| 清纯唯美激情亚洲| 99久久久精品免费观看国产| www久久久| 成人网在线视频| www.久久久.com| 亚洲最大av在线| 欧美特黄不卡| 粉嫩av一区二区三区免费观看| 日韩在线观看一区二区三区| 97netav| 日本精品一区二区三区在线观看视频| 3d动漫啪啪精品一区二区免费| 欧美2区3区4区| 91嫩草视频在线观看| 一区二区日韩| 久久国产精品久久| 亚洲另类av| 日韩电影免费观看高清完整| 日韩情爱电影在线观看| 特级毛片在线免费观看| 中文字幕日韩一区二区不卡| 人人妻人人澡人人爽欧美一区| 狠狠久久婷婷| 1024av视频| 日韩精品成人一区二区在线| 一级黄色录像在线观看| 国产精品1区二区.| 日韩精品视频一区二区| 久久先锋资源网| 日韩一区二区三区四区视频| 亚洲欧美日韩国产综合在线| 波多野结衣不卡视频| 亚洲成人av电影在线| 婷婷激情五月综合| 91精品国产综合久久香蕉麻豆| 懂色av成人一区二区三区| 日韩成人高清在线| fc2在线中文字幕| 久久6免费高清热精品| 欧美xxxhd| 成人激情视频在线| 国内精品国产成人国产三级粉色 | 久久久久久亚洲中文字幕无码| 国产清纯在线一区二区www| 日韩欧美123区| 黑人精品xxx一区一二区| 一二三区在线播放| 亚洲国产成人精品一区二区 | 亚洲国产精品毛片av不卡在线| 久久国产精品免费| 国产性生活毛片| 国产精品超碰97尤物18| 日产亚洲一区二区三区| 欧美日韩国产另类一区| 手机av免费在线观看| 在线午夜精品自拍| 99爱在线观看| 亚洲a在线观看| 国产欧美日韩影院| 日本一区午夜艳熟免费| 日本不卡免费在线视频| 老司机午夜免费福利| 国产精品你懂的在线| 日韩 欧美 中文| 欧美一级在线免费| 草碰在线视频| 91av在线播放| 一区二区中文字幕在线观看| 一本色道婷婷久久欧美 | 日本久久中文字幕| 999久久久精品一区二区| 亚州欧美一区三区三区在线| 一本色道久久综合亚洲精品不卡| 色婷婷.com| 国产亚洲欧美色| 在线观看黄网站| 精品国产免费视频| 91一区二区三区在线| 国产精品美女主播| 伊人久久大香线蕉av不卡| 日本欧美视频在线观看| 国产精品系列在线观看| 美国一级片在线观看| 欧美视频三区在线播放| 深夜福利在线观看直播| 久久欧美在线电影| 一区二区三区四区高清视频| 中文字幕乱码免费| 国产精品一区在线观看你懂的| 91久久久久久久久久久久久久 | www.精品在线| 国产日产亚洲精品系列| 国产91国语对白在线| 精品视频www| 性感女国产在线| 久久久99爱| 美女久久网站| 97超碰在线免费观看| 精品日韩美女的视频高清| 婷婷伊人综合中文字幕| 久久人人爽人人| 狼人精品一区二区三区在线| 久久亚洲精品无码va白人极品| 国产高清在线精品| 久久久久久久久精| 精品欧美一区二区久久 | 精品成人av一区| 天天干,夜夜爽| 97在线视频免费| 一道本一区二区三区 | 国产精品综合二区| 午夜免费激情视频| 精品久久久久久无| av免费不卡| 欧美精品一区二区三区四区五区 | 91午夜在线播放| 欧美阿v一级看视频| 涩视频在线观看| 精品国产精品三级精品av网址| 欧美男男激情freegay| 国产成人福利网站| 色88久久久久高潮综合影院| 天天做天天干天天操| 一区二区三区.www| 亚洲色图欧美视频| 国产精选久久久久久| 欧美日韩亚洲一区三区| 中文人妻一区二区三区| 欧美亚洲一区二区在线观看| 日本激情在线观看| 成人在线免费网站| 久久久青草婷婷精品综合日韩| 纪美影视在线观看电视版使用方法| 91麻豆精品国产91久久久更新时间| 国产盗摄精品一区二区酒店| 欧美大香线蕉线伊人久久国产精品| 日本最新不卡在线| 四虎精品免费视频| 亚洲精品久久久久久下一站| 欧美日韩女优| 人妻互换免费中文字幕| 国产亚洲一区二区三区| 国产丰满美女做爰| 国产999在线观看| 在线成人激情| 久久无码人妻精品一区二区三区 | 91精品久久久久久久蜜月| 天天躁日日躁狠狠躁av| 欧美唯美清纯偷拍| 国产丝袜精品丝袜| 亚洲国产一区二区三区在线播| 高清不卡一区二区| 波多野结衣激情视频| 欧美激情按摩在线| 热久久天天拍国产| 国产激情第一页| 欧美丰满一区二区免费视频| 国产白浆在线免费观看| 一区中文字幕在线观看| 久久婷婷一区二区三区| 精品人妻伦一区二区三区久久| 日韩av片免费在线观看| 激情另类综合| 夫妻性生活毛片| 少妇精69xxtheporn|