go grpc安装使用教程

 更新时间:2018年02月11日 10:24:29   作者:hncscwc  
gRPC是由Google主导开发的RPC框架,使用HTTP/2协议并用ProtoBuf作为序列化工具。这篇文章主要介绍了go grpc安装使用教程,需要的朋友可以参考下

gRPC是由Google主导开发的RPC框架,使用HTTP/2协议并用ProtoBuf作为序列化工具。其客户端提供Objective-C、Java接口,服务器侧则有Java、Golang、C++等接口,从而为移动端(iOS/Androi)到服务器端通讯提供了一种解决方案。 当然在当下的环境下,这种解决方案更热门的方式是RESTFull API接口。该方式需要自己去选择编码方式、服务器架构、自己搭建框架(JSON-RPC)。

1. 前提

  • 确保go的版本在1.6及以上
  • 确保glibc版本在2.14及以上(protoc需要2.14及以上版本)

2. 下载protocol buffer v3版本编译器

下载地址: https://github.com/google/protobuf/releases

当前最新版本为v3.5.1

3. 下载protoc的golang插件

go get -u github.com/golang/protobuf/protoc-gen-go
## 不能直接访问google.golang.org网址时, 从github下载然后放到google.golang.org目录
mkdir -p src/google.golang.org/
cd src/google.golang.org
git clone https://github.com/google/go-genproto genproto

4. 下载golang实现的grpc

## 可直接访问google.golang.org时
go get -u google.golang.org/grpc
## 同样不能访问google.golang.org是采用的方法
mkdir -p src/google.golang.org
cd src/google.golang.org
git clone https://github.com/grpc/grpc-go grpc
cd -
## 另外, grpc依赖的其他包需要一并下载
mkdir -p src/golang.org/x
cd src/golang.org/x
git clone https://github.com/golang/net
git clone https://github.com/golang/text
cd -

5. 编写用于gRPC的pb文件

6. 编译pb生成go代码

7. 编写客户端服务端代码并编译运行

上述三步可以参考grpc-go的示例代码

8. 补充glibc升级步骤

查看glibc版本号

strings /lib64/libc.so.6 | grep GLIBC_

下载并安装glibc

tar -zxf glibc-2.14.tar.gz
cd glibc-2.14
mkdir build
cd build
../configure --prefix=/opt/glibc-2.14
make && make install

制作软连接

rm -f /lib64/libc.so.6
ln -s /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6

注意问题

删除libc.so.6之后会导致系统命令不可用的情况

例如提示:

rm: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

解决办法:

LD_PRELOAD=/opt/glibc-2.14/lib/libc-2.14.so ln -s /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6

如果升级失败,回滚方法:

LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6

总结

以上所述是小编给大家介绍的go grpc安装使用教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Go 复合类型之字典类型使用教程示例

    Go 复合类型之字典类型使用教程示例

    这篇文章主要为大家介绍了Go复合类型之字典类型使用教程示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • Go语言中的空值(nil)与零值(zerovalue)区别详解

    Go语言中的空值(nil)与零值(zerovalue)区别详解

    在Go语言中,空值(nil)和零值(zero value)是两个不同的概念,它们在语义、使用场景以及实际的编程实践中有着明显的区别,理解这两者的差异对于编写清晰、健壮的Go代码至关重要,需要的朋友可以参考下
    2024-06-06
  • 使用Go语言创建error的几种方式小结

    使用Go语言创建error的几种方式小结

    Go语言函数(或方法)是支持多个返回值的,因此在Go语言的编程哲学中,函数的返回值的最后一个通常都是error类型,所以本文给大家介绍了使用Go语言创建error的几种方式小结,文中通过代码示例讲解的非常详细,需要的朋友可以参考下
    2024-01-01
  • golang中实现graphql请求的方法

    golang中实现graphql请求的方法

    这篇文章主要介绍了如何在golang中实现graphql请求,在本文中,我们介绍了如何使用gqlgen来构建GraphQL服务,需要的朋友可以参考下
    2023-04-04
  • Go 语言中的select语句详解及工作原理

    Go 语言中的select语句详解及工作原理

    在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于 switch 语句,本文给大家介绍Go 语言中的select语句详解及工作原理,感兴趣的朋友一起看看吧
    2025-04-04
  • 使用goland调试远程代码的操作步骤

    使用goland调试远程代码的操作步骤

    大家都知道如何在goland调试远程代码吗?今天小编给大家分享一篇教程帮助大家学习goland调试远程代码的操作步骤,感兴趣的朋友跟随小编一起看看吧
    2021-06-06
  • go语法入门泛型type parameters简称T(类型形参)两种场景使用

    go语法入门泛型type parameters简称T(类型形参)两种场景使用

    这篇文章主要为大家介绍了go语法入门泛型type parameters简称T(类型形参)两种场景使用示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • Go语言数据结构之选择排序示例详解

    Go语言数据结构之选择排序示例详解

    这篇文章主要为大家介绍了Go语言数据结构之选择排序示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • 解决Golang小数float64在实际工程中加减乘除的精度问题

    解决Golang小数float64在实际工程中加减乘除的精度问题

    这篇文章主要介绍了解决Golang小数float64在实际工程中加减乘除的精度问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Go返回int64类型字段超出javascript Number范围的解决方法

    Go返回int64类型字段超出javascript Number范围的解决方法

    这篇文章主要介绍了Go返回int64类型字段超出javascript Number范围的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07

最新评论