Go gRPC教程-客户端流式RPC(四)

前言 上一篇介绍了服务端流式RPC,客户端发送请求到服务器,拿到一个流去读取返回的消息序列。 客户端读取返回的流的数据。本篇将介绍客户端流式RPC。 客户端流式RPC:与服务端流式RPC相反,客户端不断的向服务端发送数据流,而在发送结束后,由服务端返回一个响应。 情景模拟:客户端大量数据上传到服务端。 新建proto文件 新建client_stream.proto文件 1.定义发送信息 // 定义流式请求信息 message StreamRequest{ //流式请求参数 string stre...阅读全文

博客园 2020-04-14 11:20 FireworksEasyCo 等

Go gRPC教程-服务端流式RPC(三)

前言 上一篇介绍了简单模式RPC,当数据量大或者需要不断传输数据时候,我们应该使用流式RPC,它允许我们边处理边传输数据。本篇先介绍服务端流式RPC。 服务端流式RPC:客户端发送请求到服务器,拿到一个流去读取返回的消息序列。 客户端读取返回的流,直到里面没有任何消息。 情景模拟:实时获取股票走势。 1.客户端要获取某原油股的实时走势,客户端发送一个请求 2.服务端实时返回该股票的走势 新建proto文件 新建server_stream.proto文件 1.定义发送信息 // 定义发送请求信息 ...阅读全文

博客园 2020-04-13 20:30 FireworksEasyCo 等

Go gRPC教程-简单RPC(二)

前言 gRPC主要有4种请求和响应模式,分别是简单模式(Simple RPC)、服务端流式(Server-side streaming RPC)、客户端流式(Client-side streaming RPC)、和双向流式(Bidirectional streaming RPC)。 简单模式(Simple RPC):客户端发起请求并等待服务端响应。 服务端流式(Server-side streaming RPC):客户端发送请求到服务器,拿到一个流去读取返回的消息序列。 客户端读取返回的流,直到...阅读全文

博客园 2020-04-10 16:04 FireworksEasyCo 等

Go gRPC教程-环境安装(一)

前言 gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计,带来诸如双向流、流控、头部压缩、单 TCP 连接上的多复用请求等特。这些特性使得其在移动设备上表现更好,更省电和节省空间占用。 在 gRPC 里客户端应用可以像调用本地对象一样直接调用另一台不同的机器上服务端应用的方法,使得您能够更容易地创建分布式应用和服务。 gRPC 默认使用 protocol buffers,这是 Google 开源的一套成熟的结构数据序列化机制,它的作用与 XML、json 类似,但...阅读全文

博客园 2020-04-09 20:36 FireworksEasyCo 等

Golang持续集成服务之Travis教程

为什么使用集成服务呢 我们向github提交代码时, 我们得保证我们的代码是能运行的, 我们会写测试用例, 保证我们的代码功能能正常使用.常见大神们的开源项目都一个绿色图标"build|passing 表示构建OK 如何使用Travis服务呢 打开这个网站 travis-ci.org/ 点击登陆, 使用github登陆.目前似也只支持github 1. 添加仓库 2. 开启集成 3. 项目根目录添加.travis.yml文件 cd ~/github_webhook touch .travis.y...阅读全文

掘金 2020年04月24日 百里江山

github-webhook工具实现github自动构建

原理 当本地git push origin master向Github远程仓库提交代码时,可以通过配置github自带webhook向服务器发送请求,利用github-webhook工具在服务器端接到请求后,调用自定义shell脚本来实现自动构建 github-webhook 文档 更多详情文档 github.com/yezihack/gi… 使用github-webhook 源码: github.com/yezihack/gi… 别忘记点个小星星哦. 1. 下载github-webhook工具...阅读全文

掘金 2020年04月24日 百里江山

Go 每日一库之 zerolog

简介 每个编程语言都有很多日志库,因为记录日志在每个项目中都是必须的。前面我们介绍了标准日志库log、好用的logrus和上一篇文章中介绍的由 uber 开源的高性能日志库zap。zerolog相比zap更进了一步,它的 API 设计非常注重开发体验和性能。zerolog只专注于记录 JSON 格式的日志,号称 0 内存分配! 快速使用 先安装: $ go get github.com/rs/zerolog/log 复制代码后使用: package main import "github.com...阅读全文

掘金 2020年04月25日 darjun

Go 每日一库之 zerolog

简介 每个编程语言都有很多日志库,因为记录日志在每个项目中都是必须的。前面我们介绍了标准日志库log、好用的logrus和上一篇文章中介绍的由 uber 开源的高性能日志库zap。zerolog相比zap更进了一步,它的 API 设计非常注重开发体验和性能。zerolog只专注于记录 JSON 格式的日志,号称 0 内存分配! 快速使用 先安装: $ go get github.com/rs/zerolog/log 后使用: package main import "github.com/rs/...阅读全文

Segmentfault 2020-04-27 12:32:35 darjun

4. Go 语言数据类型:byte、rune与字符串

Hi,大家好呀,我是一个刚学习 Go 语言不久的新手,在入门 Golang 的这段时间里,我写了很多详细的学习笔记,很适合新手学习噢。这些文章已经发布在我的个人微信公众号里:《Go编程时光》里,今天开始将文章内容搬运到这里,希望有更多的人看到,给更多的人带来帮助,但是这里文章会相对滞后,想获取最新文章,可以前往关注《Go编程时光》,请放心关注,这是一个纯分享的号,完全没有广告。 1. byte 与 rune byte,占用1个节字,就 8 个比特位,所以它和 uint8 类型本质上没有区别,它表...阅读全文

Segmentfault 2020-04-25 20:32:42 Python编程时光

3. Go语言数据类型:整型与浮点型

Hi,大家好呀,我是一个刚学习 Go 语言不久的新手,在入门 Golang 的这段时间里,我写了很多详细的学习笔记,很适合新手学习噢。这些文章已经发布在我的个人微信公众号里:《Go编程时光》里,今天开始将文章内容搬运到这里,希望有更多的人看到,给更多的人带来帮助,但是这里文章会相对滞后,想获取最新文章,可以前往关注《Go编程时光》,请放心关注,这是一个纯分享的号,完全没有广告。 1. 整型 Go 语言中,整数类型可以再细分成10个类型,为了方便大家学习,我将这些类型整理成一张表格。 int 和 ...阅读全文

Segmentfault 2020-04-27 12:32:34 Python编程时光

gin 源码阅读(二)-- 路由和路由组

上次我们说到 [gin 的启动过程及实现](),今天来细讲 gin 的路由。 用法 还是老样子,先从使用方式开始: func main() { r := gin.Default() r.GET("/hello", func(context *gin.Context) { fmt.Fprint(context.Writer, "hello world") }) r.POST("/somePost", func(context *gin.Context) { context.String(http....阅读全文

Segmentfault 2020-04-27 11:32:34 若鱼治水

Golang之go module开发系列二--使用伪版本和GoCenter

Go模块已经为Go开发带来了秩序,但也存在一些潜在的混乱。管理模块尤其是伪版本可能很困难,尤其是在要进行一些最新更改的情况下。 JFrog GoCenter是一个免费的版本话棋模块仓库,现在它包含了一些重要的更新,可以帮助你坚持这个最佳实践。首先让我们看看伪版本是如何工作的,以及您可以期望从这些更改中得到什么。我们还提供了一些指导,让您在升级到1.13或更高版本时保持Go的构建工作。 Go 的模块版本化 对Go模块进行版本化是一个关键特性,它为开发人员提供了一种方法来确保他们的应用程序使用他们想...阅读全文

51CTO博客 2020-04-24 21:33:49 JFrog中国

关于go module

起因: 无法导入自己编写的包 go module 输入go env GO111MODULE="on" 含义: GO111MODULE=off: 不使用 Module-aware mode。 GO111MODULE=on: 使用 Module-aware mode,不会去 GOPATH 下面查找依赖包。 GO111MODULE=auto或unset: Golang 自己检测是不是使用Module-aware mode。 根据官方描述在不设置GO111MODULE的情况下或者设为auto的时候,如果...阅读全文

简书 2020-04-25 01:33:03 nnnnxcj

LiteIDE X for Mac(用于Go编程语言的专用和多平台IDE)

LiteIDE X Mac版是Mac平台上的一款用于Go编程语言的专用和多平台IDE。LiteIDE X Mac版是一个简单的开源跨平台Go IDE,LiteIDE X是专为Go设计的集成开发环境。 功能介绍 核心功能系统环境管理MIME类型管理可配置编译命令支持文件搜索替换和恢复快速打开文件、符号和命令插件系统高级代码编辑器代码编辑支持 Go语言、Markdown 和 Golang Present快速代码导航工具语法高亮和配色方案代码完成代码折叠显示保存修订重读文件使用代码差异方式Go 语言支...阅读全文

简书 2020-04-25 01:33:01 Mac小孩儿

各种WAF收集集锦

开源WAF集锦收集https://blog.51cto.com/14678079/24749271.免费版本sharewafhttp://www.sharewaf.com/2.hihttpshihttps是一款少有完整源码的高性能WEB应用 + MQTT物联网防火墙,兼容ModSecurity规则并开源。特点是使用超级简单,就一个约10M的可执行文件,但防护功能一应俱全,包括:漏洞扫描、CC &DDOS、密码破解、SQL注入、XSS***等。更重要的是hihttps基于机器学习的商业版本,也是免...阅读全文

简书 2020-04-25 01:32:59 小浪崇礼

Golang持续集成服务之Travis教程

为什么使用集成服务呢 我们向github提交代码时, 我们得保证我们的代码是能运行的, 我们会写测试用例, 保证我们的代码功能能正常使用.常见大神们的开源项目都一个绿色图标"build|passing 表示构建OK 如何使用Travis服务呢 打开这个网站 https://travis-ci.org/ 点击登陆, 使用github登陆.目前似也只支持github 1. 添加仓库 [图片上传失败...(image-cf0199-1587733744133)] 2. 开启集成 [图片上传失败...(...阅读全文

简书 2020-04-25 01:32:56 百里江山

Golang之go module开发系列二--使用伪版本和GoCenter

Go模块已经为Go开发带来了秩序,但也存在一些潜在的混乱。管理模块尤其是伪版本可能很困难,尤其是在要进行一些最新更改的情况下。JFrog GoCenter是一个免费的版本话棋模块仓库,现在它包含了一些重要的更新,可以帮助你坚持这个最佳实践。首先让我们看看伪版本是如何工作的,以及您可以期望从这些更改中得到什么。我们还提供了一些指导,让您在升级到1.13或更高版本时保持Go的构建工作。Go 的模块版本化对Go模块进行版本化是一个关键特性,它为开发人员提供了一种方法来确保他们的应用程序使用他们想要的依...阅读全文

简书 2020-04-25 01:32:56 JFrog杰蛙科技

2020 区块链 golang 版本(3)

封面 学区块链会不会过时 我们通过比特币了解到区块链,所以大家认为比特币的兴衰就代表区块链发展趋势,其实比特币只不过是区块链的一个最佳实践罢了。现在还是处于区块链的起步阶段。而且区块链无论在应用上还是技术上都还有广泛的空间。随着比特币出现之后以太坊的出现有推动了区块链的发展。 我们都知道在比特币中涵盖多种技术,今天我们就来谈一谈比特币的几个关键技术 密码学 比特币被称为加密货币,虽然所是加密货币,但是其实比特币的交易会会在全网广播。比特币中主要应用了密码学中的哈希和签名。 哈希运算 我们先说哈希...阅读全文

简书 2020-04-25 01:32:52 zidea