以下內容出自我的個人部落格
個人部落格
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...