/gogrpc.palestra

grpc, http/2, htp/3 go/golang

Primary LanguageHTML

Poc Palestra

Este repo são exemplos que foram demostrados na palestra Grpc e GO.

Temos exemplos de APIS, RPC e GRPC.

  • No diretório Apis temos um rEST e seu Dockerfile.
  • No diretório gRPC temos nosso famigerado exemplo rodando gRPC.
  • No diretório RPC temos nosso server e client RPC.

Grpc é um framework.

Instalar proto

Primeiro passo é instalar nosso protobuf e entender como ele funciona.

[proto v1.3]

$ go get github.com/golang/protobuf/protoc-gen-go@v1.3

[proto gen]

$ go get -u github.com/golang/protobuf/protoc-gen-go

Ferramentas para Client grpc

API

$ curl -i -X POST localhost:8080/auth
$ curl -i -X POST localhost:8080/user
$ curl -i -X GET localhost:8080/user/uuid

Executando API

$ go run main.go

Compilando API

$ CGO_ENABLED=0 go build -ldflags="-s -w" -o api.rest api-rest.go
$ ./api.rest

Subindo em Docker

$ docker build --no-cache -f Dockerfile -t jeffotoni/api.rest:latest .
$ docker run -p 8080:8080 --rm --name api.rest jeffotoni/api.rest 

RPC

Primeiramente suba o server, logo depois execute o client

$ go run main.go
$ CGO_ENABLED=0 go build -ldflags="-s -w" -o rpc.server main.go

gRPC

Primeiramente suba o server, logo depois execute o client.

$ go run main.go
$ CGO_ENABLED=0 go build -ldflags="-s -w" -o grpc.server main.go

HTTP/3

Aqui está passo a passo como configurar o nginx com http/3.

http/3 docker

$ docker run --name nginx -d -p 80:80 -p 443:443/tcp -p 443:443/udp \
-v /etc/letsencrypt/:/opt/nginx/certs/ \
-v /opt/nginx/conf/example.nginx.conf:/etc/nginx/nginx.conf ymuski/nginx-quic

Implementação quic-go

Aqui está uma implementação em Go sob o protocolo quic para que possa tirar proveito do http/3

start guic-go