(1)项目框架介绍及环境安装

框架介绍

我们项目使用的微服务框架是腾讯开源的Tars,关于框架更多的资料请查阅官网

RPC协议

RPC协议使用谷歌的Protocol Buffers

业务开发环境安装

需要注意的是,在开发环境安装以下依赖之前。你应该已经根据Tars的官方文档安装好了Tars框架

由于我们业务开发的编程语言是Golang,所以还需要安装另外的一些插件。所需的依赖如下:

  • protoc
  • protoc_gen_go
  • protoc_gen_tarsgo
  • git-lfs(可选)

protoc

该可执行文件将RPC接口的定义描述文件(*.proto),编译为指定编程语言的实现代码(C++, Java…)。可以从官方的Github上下载protoc并加入到本机的环境变量中,如~/.bash_profile。

protoc-gen-go

protoc的插件,因为protoc原生没有支持生成Golang实现代码,所以需要通过安装此插件生成Golang实现代码(文件后缀:*.pb.go)。

go package官方文档的描述

protoc-gen-go-tarsrpc

Tars也支持通过Protocol Buffers生成RPC调用接口(文件后缀:*_tars.pb.go),但也是需要安装此插件。

go package官方文档的描述

git-lfs

Large File Storage (LFS) 。他是git对大文件存储的一种方案实现,详情参阅官方介绍。

在Tars里使用Protocol Buffers

可以在我Github下载这个DEMO,下面说一下生成协议的方式。

# 进入DEMO的一级目录下
cd  ~/Workspace/golang/src/github.com/TarsExample

# 执行编译协议的脚本
sh ./build_protocol.sh

执行完以上两个命令后,就可以看到server/pb下生成了helloworld.pb.gohelloworld_tars.pb.go两个文件。

其中helloworld.pb.go是由protoc-gen-go生成,helloworld_tars.pb.go是由protoc-gen-go_tarsrpc生成。从生成的两个文件可以看出helloworld_tars.pb.go里面引用了helloworld.pb.go的内容。

这就是在Tars里面使用Protocol Buffers的方式。至此,Tars已经用Golang为我们实现并生成了在Protocol Buffers文件里定义的接口。