Skip to content

dmitryrpm/zex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

zex

Task proxymanager for grpc services

Тестовое задание

Первая реализация сервера ЦЕХ. Нужно написать сервис, который будет реализовывать следующий GRPC DSL

  • через Pipeline можно вызывать только unary методы и нам все равно на их ответ, кроме ошибки (упрощение)
  • cценарий выполения при наполенени pipeline cохраняется в goleveldb
  • cценарий выполения запускается конкурентно и данные вычитываются из goleveldb
  • при получении ошибки все контексты отменяются
  • базовый тест мы должны зарегать три сервиса A,B,C и вызвать у каждого по три метода CallA,CallB,CallC в рамках одного пайплайна и должет быть успех
  • файл тест мы должны зарегать три сервиса A,B,C и вызвать у каждого по три метода CallA,CallB,CallC и у B CallErr в рамках одного пайплайна и должет быть файл и отмена контекста и вызовов у других
  • Body нужно передавать при вызыве сервиса как proto.Marsheler - тут простая обертка над bytes которая возращает сами байты

Install grpc

curl -OL https://github.com/google/protobuf/releases/download/v3.2.0/protoc-3.2.0-linux-x86_64.zip
unzip protoc-3.2.0-linux-x86_64.zip -d protoc3
sudo mv protoc3/bin/protoc /usr/bin/protoc

Compile grpc-protofiles

# cd to proto dir
protoc --go_out=plugins=grpc:. *.proto

Install forego (options)

wget https://bin.equinox.io/c/ekMN3bCZFUn/forego-stable-linux-amd64.tgz
sudo tar xvf forego-stable-linux-amd64.tgz -C /usr/local/bin

Run

# install all requires
make requires

# run zex service
make run_zex

# run with forego or 
# make run_a ... etc
forego start

# run client
make run_client

Run tests

make run test

Demo

Alt text