Grpc系列學習 一

2021-10-25 01:49:24 字數 4063 閱讀 8842

以下內容出自我的個人部落格

個人部落格

grpc系列學習(一)

剛開始學習go的時候就想認識go有沒有類似與springcloud的分布式框架,也是那個時候得知了grpc.說來慚愧,對grpc的認識也僅僅停留在:我知道有這麼個東西,但是我不會用.因為準備寫一系列部落格,來開始重新拾起這個分布式框架.

hadoop:應該是鴿的差不多了,主要是學著學著突然沒興趣繼續往下了解了,正巧這兩天有寫go的手感.

話說哪個啥實驗班還要專門開課程,好想翹

start:

grac官網上的定義是:a high-performance, open source universal rpc framework.

我們簡單理解成乙個高效能分布式rpc框架,當然我的技術部落格不會出現太多與**無關的東西.所以不再詳細介紹rpc是啥玩意.

上段內容來自官網 ,grpc是跨語言的.官網上同給出了其他語言的示例學習真的太多語言了

做個比較

(真的不是來黑grpc的)

protobuf

protocol buffers 是一種與語言、平台無關,可擴充套件的序列化結構化資料的方法,常用於通訊協議,資料儲存等等。相較於 json、xml,它更小、更快、更簡單,因此也更受開發人員的青眯

語法我略了,因為我自己也不太會

這個是grpc必須的定義檔案.

get the example code

the example code is part of the grpc-go repo.

download the repo as a zip file and unzip it, or clone the repo:

$ git clone
這裡已經把全部原始碼clone下來了,照著官方文件跑個hello grpc.

server端:

go run greeter_server/main.go
client端:

go run greeter_client/main.go
這裡分別啟動了server端和client端的服務,client端發出hello world

server接收.

記得開兩個控制台

接下來我們自己使用grpc以及protoc來編寫乙個server和client用來互相通訊.

go get -u google.golang.org/grpc
總之執行以下命令能看到正常輸出就行.

proto檔案:

syntax = "proto3";

​package proto;

​service searchservice }​

message searchrequest

​message searchresponse

生成:

protoc --go_out=plugins=grpc:. *.proto
我們定義的 proto 檔案是涉及了 rpc 服務的,而預設是不會生成 rpc **的,因此需要給出plugins引數傳遞給protoc-gen-go,告訴它,請支援 rpc(這裡指定了 grpc)

–go_out=.:設定 go **輸出的目錄

該指令會載入 protoc-gen-go 外掛程式達到生成 go **的目的,生成的檔案以 .pb.go 為檔案字尾

(冒號)

冒號充當分隔符的作用,後跟所需要的引數集。如果這處不涉及 rpc,命令可簡化為:

執行命令後可以得到 .pb.go檔案:

)}啟動:

go run server.go

go run client.go

輸出:resp: grpc server

即可完成一次簡單的通訊!

Tornado 系列學習筆記 一

1.常見的兩種不適合採用多執行緒的應用場景 epoll 是一種實現 系統層網路通訊的 解決方案.相比之前的解決方案,epoll有兩大特點 具體看需求.比如,如果是對返回的列表進行分頁,前端沒有傳遞per page或page num等約定的引數的時候,我們應該設定預設值.當某些引數是前端必傳的,而沒有...

SpringCloud系列學習

在講解springcloud 之前,我們先講一講單體架構系統。所謂的單體架構就是所有功能,都放在乙個應用裡。比如後面要講的乙個單體產品服務應用,提供資料和檢視都在乙個springboot裡。單體架構系統有其好處,如便於開發,測試,部署也很方便,直接打成乙個 jar 或者 war,就什麼都好了。不過單...

WPF系列學習

1 wpf最小化到系統托盤 2 wpf程式單例執行 3 wpf中三種異常捕獲 ui執行緒異常 非ui執行緒異常 tas 程異常 在窗體放乙個按鈕在單擊事件執行如下 來模擬。private void button click object sender,routedeventargs e t.isba...