Go 1.8使用Protocol Buffer
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go 1.8使用Protocol Buffer相关的知识,希望对你有一定的参考价值。
参考技术A 最近在写一个在线客服模块,秉着简单,可控,可维护,可扩展,满足需求的原则,找了一个开源项目: https://github.com/kone-net/go-chat 。当然对于原始项目,肯定还是需要一些改动的,比如:鉴权,用户体系,文件类型消息的处理(存在阿里云OSS上)等等。
为了满足需求,修改了原始的基于protocol buffer的message,修改后在重新生成对应的go文件时候,遇到了一些问题,可以参考以下解决方法。
github上的protobuf( https://github.com/golang/protobuf )已经说明,需要使用: google.golang.org/protobuf 。
安装官方文档 https://grpc.io/docs/languages/go/quickstart/ 安装对应的插件模块,mac需要在.zshrc文件添加以下内容:
以下是message proto文件:
执行以下命令生产对应的go文件:
buffer_pool.go
package nsqd
import (
"bytes"
"sync"
)
var bp sync.Pool
func init() {
bp.New = func() interface{} {
return &bytes.Buffer{}
}
}
func bufferPoolGet() *bytes.Buffer {
return bp.Get().(*bytes.Buffer)
}
func bufferPoolPut(b *bytes.Buffer) {
bp.Put(b)
}
以上是关于Go 1.8使用Protocol Buffer的主要内容,如果未能解决你的问题,请参考以下文章
go微服务Protocol Buffers V3中文语法指南