微服務grpc安裝及其及其第乙個程式調通(一)

2021-10-11 15:28:26 字數 2105 閱讀 7817

一:安裝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.服務註冊與發現 服務的提供方必然要進行註冊,將自己的位址和各種位...