框架介绍
我们项目使用的微服务框架是腾讯开源的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.go
和helloworld_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文件里定义的接口。