一:安裝grpc
require (
google.golang.org/grpc v1.34.0
google.golang.org/protobuf v1.25.0
)
二:準備編譯protoful需要的工具
4、以上三部的安裝一定要保證在命令列下,能找到這個三個命令(設定一下全域性變數,或者放到你的gopath下面的bin檔案下,然後把此資料夾設定成環境變數檔案加)
三、編寫proto檔案
語法教程:proto3語法教程
例項:編寫檔案 ticketcheck.proto
syntax = "proto3"; //使用的是版本
option go_package = "ticketcheck"; 是這生成*._grpc.pb.go,*.pb.go檔案的包名
package proto;
message ticketrequest
message tikcetresponse
service checkservice ;
}
生成*._grpc.pb.go,*.pb.go檔案
進入你要編寫的 ticketcheck.proto 所在的目錄 然後在命令列下執行:
protoc --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative ticketcheck.proto
四:編寫服務端
package main
import (
pb "codestudy/proto/ticketcheck" //生成proto檔案的位址
"context"
"google.golang.org/grpc"
"log"
"net"
)type ticketcheck struct
func (t *ticketcheck) verification(ctx context.context, ticket *pb.ticketrequest) (*pb.tikcetresponse, error) , nil
}func main()
s := grpc.newserver()
pb.registercheckserviceserver(s, &ticketcheck{})
if err := s.serve(lis); err != nil
}
五:編寫客戶端
package main
import (
"context"
"log"
"time"
pb "codestudy/proto/ticketcheck"
"google.golang.org/grpc"
)const (
address = "localhost:7788"
)func main()
defer conn.close()
c := pb.newcheckserviceclient(conn)
// contact the server and print out its response.
ctx, cancel := context.withtimeout(context.background(), time.second)
defer cancel()
var ticket *pb.ticketrequest = &pb.ticketrequest
r, err := c.verification(ctx, ticket)
if err != nil
log.printf("greeting: %s", r.geterrors())
}
六:啟動服務端,然後在執行客戶端就ok了
注:一定要先學習proto3的語法,會根據需求編寫proto3檔案。然後在編寫服務端和客戶端。在學習服務註冊,服務發現,負載均衡(consul,etcd)
學無止境,動手最重要。
微服務及其相關架構
是解決系統架構的手段,不是目的,圍繞業務,松耦合,獨立部署,不同語言 在微服務管理中常常需要使用到的一些列的元件 服務註冊 服務提供方將自己呼叫位址註冊到服務註冊中心,讓服務呼叫方能夠方便地找到自己。服務發現 服務呼叫方從服務註冊中心找到自己需要呼叫的服務的位址。負載均衡 服務提供方一般以多例項的形...
論微服務架構及其應用
宣告 本文為本人在軟考系統架構設計師備考期間的練手寫作,不保證內容的原創性與正確性,僅供參考,請勿照抄和用於學術 等正規場合,因不當使用產生後果一律自負。系統自2019年10月正式上線已執行一年有餘,在學校的日常教學考試和競賽培訓中投入使用,截至目前已有3000以上的學生使用者 評測了70000條以...
微服務簡單架構及其重要元件
如今的各大網際網路公司專案都不在使用單體架構,而採用微服務架構,今天我們來 一下微服務的概念。首先微服務是一種架構風格,他不是一種架構,它是由一些列微小服務構成的,這些服務間要通過某種機制進行通訊。下面用一張圖來了解一下微服務架構。1.服務註冊與發現 服務的提供方必然要進行註冊,將自己的位址和各種位...