Go

Go - 如何编写 ProtoBuf 插件 (三) ?

前言 上篇文章《Go - 如何编写 ProtoBuf 插件 (二) 》,分享了基于 自定义选项 定义了 interceptor 插件,然后在 helloworld.proto 中使用了插件,最后在 golang 代码中获取到使用的插件信息。 接上篇,继续分享。 既然获取到了插件信息,我们就可以使用它 ... »

xinliangcoder Go篇

Go Error 嵌套到底是怎么实现的?

原文链接: Go Error 嵌套到底是怎么实现的? Go Error 的设计哲学是 「Errors Are Values」。 这句话应该怎么理解呢?翻译起来挺难的。不过从源码的角度来看,好像更容易理解其背后的含义。 Go Error 源码很简单,寥寥几行: // src/builtin/built ... »

Protobuf使用--go和C#

一、Go安装及使用protobuf工具 以下都是基于Linux系统; 1.安装 A) protobuf 编译工具安装 1、下载 protoBuf: cd $GOPATH/src/ git clone https://github.com/protocolbuffers/protobuf.git 2、 ... »

littleperilla Golang

《Go组件设计与实现》-netpoll的总结

主要针对字节跳动的netpoll网络库进行总结。netpoll网络库相比于go本身的net标准库更适合高并发场景。 基础知识 netpoll与go.net库一样使用epoll这种IO多路复用机制处理网络请求。 基本理解 我们知道linux万物皆文件,每个文件有个文件标识符fd,我们可以想象linux ... »

codexiaoyi

Go 分布式令牌桶限流 + 兜底策略

令牌桶算法是网络流量整形(Traffic Shaping)和速率限制(Rate Limiting)中最常使用的一种算法。典型情况下,令牌桶算法用来控制发送到网络上的数据的数目,并允许突发数据的发送。 ... »

kevinwan Go

sql审核-避免离线sql导致的db集群故障

关键词: sql审核、sql审批、sql检查、sql检测、sql执行 离线sql可能会导致的问题 首先,什么是离线sql呢?就是说手动触发执行的这种sql;相对的还有在线sql,位于我们的程序代码中,由程序触发执行的sql是在线sql。举个例子,我们想要建库、建表、改表的时候,通常会编写sql语句, ... »

mingbai

Go 中实现用户的每日限额(比如一天只能领三次福利)

如果你写一个 bug 管理系统,用了这个 PeriodLimit 你就可以限制每个测试人员每天只能给你提一个 bug。工作是不是就轻松很多了?:P 如今微服务架构大行其道本质原因是因为要降低系统的整体复杂度,将系统风险均摊到子系统从而最大化保证系统的稳定性,通过领域划分拆成不同的子系统后各个子系统能 ... »

kevinwan Go

JavaScript的执行过程(深入执行上下文、GO、AO、VO和VE等概念)

JavaScript的执行过程 前言 编写一段JavaScript代码,它是如何执行的呢?简单来说,JS引擎在执行JavaScript代码的过程中需要先解析再执行。那么在解析阶段JS引擎又会进行哪些操作,接下来就一起来了解一下JavaScript在执行过程中的详细过程,包括执行上下文、GO、AO、V ... »

深度分析 [go的HttpClient读取Body超时]

故障现场 本人负责的主备集群,发出的 HttpClient 请求有 30%概率超时, 报context deadline exceeded (Client.Timeout or context cancellation while reading body) 异常 Kibana 显示 Nginx 处 ... »

用go写一个简单的看门狗程序(WatchDog)

简述 因为公司的一些小程序只是临时使用一下(不再维护更新),有的有一些bug会导致崩溃,但又不是很严重,崩溃了重新启动一下就好。 所以写了一个看门狗程序来监控程序,挂了(因为我这里并不关心程序的其他状 »

oloroso

Go 是一种面向对象的语言吗?

要真正理解“面向对象”的含义,我们需要回顾一下这个概念的起源。第一个面向对象的语言 simula 出现在 1960 年代。它介绍了对象、类、继承和子类、虚拟方法、协程等等。也许最重要的是,它引入了数据和逻辑完全独立的思维范式转变。 虽然您可能不熟悉 Simula,但您无疑熟悉将 Simula 称为灵 ... »

onmpw

微服务 架构 php+go

微服务 架构 php+go http://note.youdao.com/noteshare?id=903f3d4028a163241c4c3eff2a9f9df7 https://blog.ding »

ldms

如何在 Linux 上使用 x2go 设置远程桌面

https://linux.cn/article-5708-1.html 由于一切都迁移到了云上,作为提高职员生产力的一种方式,虚拟远程桌面在工业中越来越流行。尤其对于那些需要在多个地方和设备之间不停 »

wangmo

为什么要避免在 Go 中使用 ioutil.ReadAll?

原文链接: 为什么要避免在 Go 中使用 ioutil.ReadAll? ioutil.ReadAll 主要的作用是从一个 io.Reader 中读取所有数据,直到结尾。 在 GitHub 上搜索 ioutil.ReadAll,类型选择 Code,语言选择 Go,一共得到了 637307 条结果。 ... »

What's new in dubbo-go-pixiu 0.4.0

Dubbo-go-pixiu 是一款高性能 API 网关,支持 Dubbo 和 Http 等多种协议。具体介绍文章可以参考《Dubbo 跨语言调用神兽:dubbo-go-pixiu》。 近期社区发布了 0.4.0 版本,具体请查看 v0.4.0。相关改进实在太多,本文只列出相关重大 feature、 ... »

dubbo-go

Go 通过 Map/Filter/ForEach 等流式 API 高效处理数据

用过 Java 的同学都熟悉 Stream API,那么在 Go 里我们可以用类似的方式处理集合数据吗?本文给大家介绍 go-zero 内置的 Stream API,为了帮助理解,函数主要分为三类:获取操作、中间处理操作、终结操作。 ... »

kevinwan Go