精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

成人一级福利| 欧美激情一区二区三区免费观看| 中文字幕一区二区三区中文字幕| 午夜一区二区三区视频| 欧美精品二区三区四区免费看视频 | 久久久久99人妻一区二区三区| av在线资源| 国产精品少妇自拍| 狠狠综合久久av| 国产一区二区小视频| 在线亚洲成人| 久久av红桃一区二区小说| 在线观看av中文字幕| 亚洲精品一区二区在线播放∴| 婷婷一区二区三区| 亚洲欧洲日韩综合二区| 色中色在线视频| 国产麻豆精品一区二区| 国产精品爱啪在线线免费观看| 久久机热这里只有精品| 日本久久一二三四| 亚洲精品一区在线观看香蕉| 被黑人猛躁10次高潮视频| 久久99久久99精品免观看软件| 亚洲一区二区欧美| 中文字幕日韩精品久久| 亚洲a∨一区二区三区| 国产午夜无码视频在线观看| 亚洲美女黄色| 欧美成人小视频| 国产一区二区三区精品在线| 三级精品视频| 亚洲成人av片| 国产欧美一区二区三区在线| 午夜激情视频网| 欧美日韩五区| 欧美午夜女人视频在线| 精品一区二区三区无码视频| 免费网站成人| 国产欧美视频一区二区| 四虎4545www国产精品| 99re亚洲国产精品| 91福利入口| 久久99精品久久久久久久青青日本| 一区二区日韩视频| 日韩精品免费视频人成| 国产91成人在在线播放| 日韩欧美大片在线观看| 欧美精品一区二区三区久久久竹菊| 在线亚洲欧美视频| 91导航在线观看| 精品久久成人| 中文字幕自拍vr一区二区三区| 女人又爽又黄免费女仆| 在线成人动漫av| 亚洲午夜未删减在线观看 | 天天操天天爽天天射| 中文字幕天堂在线| 久久午夜精品一区二区| 奇米一区二区三区四区久久| 国产精品视频免费播放| 视频精品一区二区| 国产91露脸中文字幕在线| 好吊色在线视频| 奇米一区二区三区| 成人激情免费在线| 精品女同一区二区三区| 国产成人精品免费| 国产在线观看一区| 毛片在线能看| 国产精品传媒视频| 超薄肉色丝袜足j调教99| 欧美精品羞羞答答| 亚洲综合网站在线观看| 97在线免费视频观看| 婷婷色在线资源| 亚洲成人av电影| 中国丰满人妻videoshd | 日日碰狠狠躁久久躁婷婷| 日韩黄色在线视频| 99re国产精品| 91麻豆福利精品推荐| 国产日韩欧美日韩| 99在线观看免费| 成人sese在线| 欧洲在线视频一区| 91在线网址| 亚洲一区在线视频观看| 乱妇乱女熟妇熟女网站| 成人国产精品入口免费视频| 日韩欧美一级在线播放| 极品粉嫩小仙女高潮喷水久久| 成人精品影视| 久久国产精品久久久久久电车 | 精品国产一区二区三区2021| 日韩免费成人网| 无码精品一区二区三区在线播放| 国产日产精品一区二区三区四区的观看方式 | 亚洲国产精品一区二区尤物区| 青青草原av在线播放| 懂色av色香蕉一区二区蜜桃| 日韩精品免费电影| 国产日产精品一区二区三区的介绍| 亚洲人体大胆视频| 国产欧美精品一区二区三区介绍| 懂色av成人一区二区三区| 国产女人18毛片水真多成人如厕| 91免费版看片| 欧美网站免费| 日韩激情av在线免费观看| 国产亚洲精品久久久久久豆腐| 激情综合视频| 成人国产精品一区二区| 精品999视频| 国产av天堂无码一区二区三区| 中文字幕一区二区三区精品| 日韩精品成人一区二区在线| 91久久精品一区二区别| 国产九九在线| 五月综合激情网| 久久久久国产一区| 日本韩国欧美超级黄在线观看| 久久精品99久久香蕉国产色戒| 亚洲综合久久网| 成人av网站免费| 中文字幕一区二区三区四区五区人| 亚洲天堂一区二区| 欧美性久久久| 538国产精品一区二区在线 | 国产一区二区三区成人欧美日韩在线观看| 国产精品视频精品| 福利小视频在线观看| 欧美日韩亚洲视频一区| 成熟妇人a片免费看网站| 亚洲精品在线观看91| 久久综合久久鬼色| 色噜噜狠狠色综合网| 激情都市亚洲| 精品亚洲aⅴ在线观看| 日韩欧美激情视频| 91在线高清观看| 欧美 国产 综合| 无码日韩精品一区二区免费| 91国产精品91| 亚洲欧美日韩综合在线| 欧美日韩综合视频网址| 国产福利短视频| 一本久久知道综合久久| 国产高清在线一区二区| 丁香花视频在线观看| 亚洲成人精品视频在线观看| 国产欧美日韩另类| 99国内精品久久| 女人另类性混交zo| 精品久久久久久久| 国产欧美精品xxxx另类| free性欧美hd另类精品| 欧美电视剧在线看免费| 日韩伦人妻无码| 91一区在线观看| 国产免费人做人爱午夜视频| jlzzjlzz亚洲女人| 91欧美日韩一区| 成人福利电影| 国产午夜一区二区| 亚洲一级特黄毛片| 一区二区三区欧美日韩| 日韩少妇一区二区| 三级久久三级久久久| 亚洲精品免费在线看| 在线视频成人| 巨乳诱惑日韩免费av| 成人写真福利网| 国产精品69xx| 亚洲人成在线一二| 国产精品无码久久av| 婷婷综合久久一区二区三区| 黄色av免费播放| 国产成人亚洲精品狼色在线| 国产又黄又大又粗视频| 欧美国产一级| 国产精品一区二区三区在线| 欧美大胆成人| 精品综合久久久久久97| 日韩二区三区| 日韩欧美123| 波多野结衣mp4| 一区二区三区国产精品| www在线观看免费视频| 国内成+人亚洲+欧美+综合在线| 黄色大片在线免费看| 91免费精品| 久久国产主播精品| 国产精品视频一区视频二区| 欧美最猛性xxxxx免费| 毛片在线看网站| 日韩精品免费看| 99在线无码精品入口| 日本高清不卡视频| 国产精品99无码一区二区| 中文字幕精品一区二区精品绿巨人 | 亚洲变态欧美另类捆绑| 伊人成人在线观看| 欧美丝袜一区二区| 免费在线视频一区二区| 国产精品无码永久免费888| www.男人天堂| 国产米奇在线777精品观看| 北条麻妃av高潮尖叫在线观看| 欧美日韩一卡| 国产精品亚洲天堂| 经典一区二区| 久久综合狠狠综合久久综青草| 亚洲综合影院| 亚洲精品免费av| 农村妇女一区二区| 国产成人自拍高清视频在线免费播放| 一二三四中文字幕| 日韩精品dvd| 欧美在线视频一区二区三区| xxxx日韩| 成人久久18免费网站漫画| 最新日韩一区| 日本久久久久久久久久久| caoprom在线| 欧美黑人巨大xxx极品| 18加网站在线| 久久躁日日躁aaaaxxxx| 天天在线视频色| 伊人精品在线观看| 九色在线播放| 亚洲人成在线一二| 国产一二三区在线| 一本大道久久加勒比香蕉| 免费福利在线观看| 亚洲人午夜色婷婷| 精品美女视频在线观看免费软件 | 韩国理伦片一区二区三区在线播放| 亚洲成熟丰满熟妇高潮xxxxx| 亚洲欧美大片| 97在线播放视频| 丝袜国产日韩另类美女| 免费国产成人av| 免费精品视频最新在线| 91激情视频在线| 免费成人在线观看视频| 亚洲综合日韩欧美| 国内精品久久久久影院薰衣草| 色一情一区二区三区| 韩国成人在线视频| 男人的天堂免费| 国产·精品毛片| 91精品啪在线观看国产| 波多野结衣一区二区三区| 亚洲观看黄色网| 久久色在线视频| 日韩免费成人av| 国产精品福利一区| 私库av在线播放| 精品久久久久久亚洲国产300| 欧美一二三区视频| 91国偷自产一区二区三区成为亚洲经典| 成人公开免费视频| 欧美性受xxxx黑人xyx性爽| 影音先锋黄色网址| 欧美一区二区网站| 日本xxxxxwwwww| 亚洲人成绝费网站色www| 色网站在线看| 久久久久久久久久久av| 欧美成人精品三级网站| 91久久久久久| 果冻天美麻豆一区二区国产| 日韩av一级大片| 91精品成人| 日韩欧美国产综合在线| 奇米色一区二区三区四区| 少妇愉情理伦片bd| 久久久久国产免费免费| 超碰在线国产97| 欧美性xxxx极品hd欧美风情| 一卡二卡三卡在线观看| 亚洲成人在线网| 69视频在线| 久久久久在线观看| 日本综合视频| 国产超碰91| 久久高清免费| 国产伦精品一区二区三区四区视频_ | 国产精品全国免费观看高清| 欧美激情国产精品免费| 色悠久久久久综合欧美99| a视频免费在线观看| 亚洲男人av电影| 日本电影在线观看| 国产精品日日做人人爱| 国产日韩三级| 亚洲在线色站| 久久久精品五月天| 亚洲天堂网站在线| 中文字幕免费一区| 国产微拍精品一区| 日韩精品一区二区三区视频 | 免费成年人高清视频| 99视频精品全部免费在线| 永久av免费网站| 日本韩国欧美三级| 五月婷婷在线观看视频| 久久久精品在线观看| 成人在线爆射| 精品免费一区二区三区蜜桃| 伊人情人综合网| 九色porny自拍| www一区二区| 日操夜操天天操| 欧美大片在线观看一区| 成人在线直播| 成人久久18免费网站图片| 精品国产午夜| 久久无码高潮喷水| 成人爱爱电影网址| 国产亚洲精品av| 日韩欧美国产一区在线观看| 免费高清完整在线观看| 国产精品日日摸夜夜添夜夜av| 九九久久电影| 少妇无码av无码专区在线观看| 国产99一区视频免费| 私库av在线播放| 日韩视频在线一区二区| 国产激情小视频在线| 国产自摸综合网| 欧美韩日一区| 亚洲国产成人va在线观看麻豆| 国产欧美日韩精品在线| 亚洲中文字幕无码爆乳av| 亚洲老头老太hd| jizz内谢中国亚洲jizz| 精品一区二区三区自拍图片区 | 五月婷婷丁香色| 欧美国产日韩精品免费观看| 国产免费a视频| 国产亚洲精品日韩| jizzjizz少妇亚洲水多| 亚洲黄色一区二区三区| 日韩精品欧美精品| 午夜国产福利视频| 欧美高清视频一二三区 | 99久久www免费| 91视频福利网| 亚洲国产精品欧美一二99| 天天综合网在线观看| 日韩免费在线观看视频| 精品国产一区二区三区小蝌蚪 | 久久久久久无码午夜精品直播| 亚洲天堂av电影| 外国成人毛片| 丁香六月激情网| 91日韩精品一区| 波多野结衣小视频| 久久九九精品99国产精品| 久久影院一区二区三区| 被灌满精子的波多野结衣| 99国产精品久久| 欧美男人天堂网| 久久久精品视频成人| 极品束缚调教一区二区网站 | 国产一区不卡精品| 久久综合久久鬼| 亚洲女人被黑人巨大进入| 欧美风情在线视频| 久久99久久99精品| 久久久久99精品国产片| 国产精品一级视频| 午夜精品久久久久久久白皮肤| 精品国产精品| 中国男女全黄大片| 色一情一乱一乱一91av| 亚洲精品一区二区在线看| 黄色av免费在线播放| 综合精品久久久| 无码精品视频一区二区三区 | 视色,视色影院,视色影库,视色网 日韩精品福利片午夜免费观看 | 国产欧美日韩| 亚洲一二区在线观看| 精品久久香蕉国产线看观看亚洲| 97人人在线| 国外成人在线视频网站| 麻豆一区二区三| 久草手机在线观看| 欧美巨大黑人极品精男| 九一成人免费视频| 久久精品无码一区二区三区毛片| 欧美性xxxx极品hd欧美风情| 在线中文字幕电影| 视频一区视频二区视频| 99精品久久99久久久久| av老司机久久| 国产情人节一区| 欧美亚洲一级|