Golang微服务实践

之前的文章中我已经简单的介绍了微服务 https://www.cnblogs.com/makelu/p/11005736.html,微服务特性是轻量级跨平台和跨语言的服务,也列举了比较了集中微服务通信的手段的利弊,本文将通过RPC通信的方式实现一个增删查Redis的轻量级微服务示例,大部分内容翻译自https://medium.com/@felipe.infantino.moreno/microservice-in-golang-using-redis-and-grpc-865587aa260c,中间加上自己的实践和理解。

 

实验环境

Mac OS

go version go1.12.4 darwin/amd64

Docker version 18.09.2, build 6247962

 

代码仓库

https://github.com/felipeinfantino/microservice-golang

 

微服务实践 gRPC代码生成

因为我们要实现一个通过gRPC通信的基于Redis 数据库的增删改微服务,所以我们首先需要定义一个gRPC的通信描述文件server.proto:

syntax = "proto3"; package proto; // Server Requests message SetRequest{ string key = 1; string value = 2; } message GetRequest{ string key = 1; } message DeleteRequest{ string key = 1; } // Server Response message ServerResponse{ bool success = 1; string value = 2; string error = 3; } // Define service service BasicService{ rpc Set(SetRequest) returns (ServerResponse); rpc Get(GetRequest) returns (ServerResponse); rpc Delete(DeleteRequest) returns (ServerResponse); }  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpjxys.html