必知必会的大厂面试计算机基础和概念

2020-10-26
阅读 5 分钟
3.1k
最近在翻阅文章时,看到朋友推荐的《程序员的自我修养》,这是一本讲链接、装载与库的计算机图书,看了下目录后觉得挺有意思。因此决定每读一章就将其读书笔记整理记录下来,分享给大家。目录:不要让 CPU 打盹在计算机发展早期,CPU 资源十分昂贵。如果一个 CPU 只能运行一个程序,那么当程序在读写磁盘(进行 I/O 操作...

带你快速了解:限流中的漏桶和令牌桶算法

2020-10-17
阅读 3 分钟
3.7k
在前文 《限流熔断是什么,怎么做,不做行不行?》中针对 “限流” 动作,有提到流量控制其内部对应着两种常用的限流算法,分别是漏桶算法和令牌桶算法。因此会有的读者会好奇,这都是些啥?

业务压力一大就宕机?一文带你搞懂限流熔断!

2020-10-12
阅读 4 分钟
4.8k
“在分布式应用中,最常见的问题是什么呢?”“一个分布式应用部署上去后,还要关注什么?”“这服务的远程调用依赖似乎有点多...”前言在 《微服务的战争:级联故障和雪崩》中有提到,在一个分布式应用中,最常见,最有危险性之一的点就是级联故障所造成的雪崩,而其对应的解决方案为根据特定的规则/规律进行流量控制和熔断降...

想要4个9?本文告诉你监控告警如何做

2020-10-08
阅读 5 分钟
7.5k
“你说说,没有仪表盘的车,你敢开吗?”“没有仪表盘的车开在路上,你怎么知道现在是什么情况?”“客户说你这车又崩了,咋知道什么时候好的?​啥时候出的问题?”前言将思考转换到现实的软件系统中,可想而知没有监控系统的情况下,也就是没有 ”仪表盘“ 的情况下实在是太可怕了。你的故障永远都是你的客户告诉你的,而...在...

微服务的战争:选型?分布式链路追踪

2020-09-13
阅读 3 分钟
5.5k
“微服务的战争” 是一个关于微服务设计思考的系列题材,主要是针对在微服务化后所出现的一些矛盾/冲突点,不涉及具体某一个知识点深入。如果你有任何问题或建议,欢迎随时交流。

Go: A Documentary 发布!

2020-09-13
阅读 1 分钟
2.1k
以前经常有读者问我,哪儿可以找到 Go 语言的前世今生,这种时候我们往往会告诉他去看 issues 和 proposals。但资料有点分散,且没有索引体系。因此不少人新入门的读者读着读着就跑偏了,又或是在第一步找资料上就被拦住了。

微服务的战争:级联故障和雪崩

2020-09-13
阅读 2 分钟
3.9k
“微服务的战争” 是一个关于微服务设计思考的系列题材,主要是针对在微服务化后所出现的一些矛盾/冲突点,不涉及具体某一个知识点深入。如果你有任何问题或建议,欢迎随时交流。

微服务的战争:统一且标准化

2020-08-30
阅读 3 分钟
2.4k
“微服务的战争” 是一个关于微服务设计思考的系列题材 ? ,主要是针对在微服务化后所出现的一些矛盾/冲突点,不涉及具体某一个知识点深入。如果你有任何问题或建议,可以微信搜一搜【脑子进煎鱼了】或我的 博客 进行沟通和交流。

微服务的战争:按什么维度拆分服务

2020-08-23
阅读 4 分钟
6.2k
👍 点赞再看,养成习惯,微信搜一搜【脑子进煎鱼了】吸取煎鱼的精华 🚀。最近热衷于分享 Go 语言、微服务架构和各类奇怪的系统设计。若有任何建议或疑问欢迎随时交流和反馈。

新书《Go语言编程之旅:一起用Go做项目》出版啦!

2020-07-06
阅读 3 分钟
7.8k
最早从我在 Segmentfault 开始写技术文章起,不知不觉近三年过去了,咨询和催我出书和读者逐年递增,在 2019 年算是达到一个高峰。当然,综合考虑下我也是一直拒绝的,觉得火候还不够。

为什么容器内存占用居高不下,频频 OOM

2020-06-08
阅读 4 分钟
4.6k
最近我在回顾思考(写 PPT),整理了现状,发现了这个问题存在多时,经过一番波折,最终确定了元凶和相对可行的解决方案,因此也在这里分享一下排查历程。

首发特性:goproxy.cn 现已推出首个 Go 模块代理统计数据 API

2020-03-30
阅读 6 分钟
2.5k
这周很值得纪念,首先是 goproxy.cn 已缓存的模块版本总数突破了一百万,这甚至比起 Go 官方的 proxy.golang.org 已缓存的还要多出不少。其次是 goproxy.cn 的日访问量已稳定在千万级,正在朝着亿级进发,目前这在国内我了解到的别的几个同类服务中是最多的了。另外尤为重要的一点是,经过我们的不懈努力,甚至付出了两...

Go Modules 终极入门

2020-02-27
阅读 13 分钟
14.9k
Go modules 是 Go 语言中正式官宣的项目依赖解决方案,Go modules(前身为vgo)于 Go1.11 正式发布,在 Go1.14 已经准备好,并且可以用在生产上(ready for production)了,Go官方也鼓励所有用户从其他依赖项管理工具迁移到 Go modules。

干货满满的 Go Modules 和 goproxy.cn

2019-09-29
阅读 12 分钟
17.1k
大家好,我是一只普通的煎鱼,周四晚上很有幸邀请到 goproxy.cn 的作者 @盛傲飞(@aofei) 到 Go 夜读给我们进行第 61 期 《Go Modules、Go Module Proxy 和 goproxy.cn》的技术分享。

煎鱼换公众号啦。

2019-09-22
阅读 1 分钟
2.7k
大家周末好呀,我是煎鱼,由于现在这个公众号(煎鱼说)并没有留言功能,在互动交流方面总感觉缺了一块,一直觉得比较遗憾。 因此从今天起我将正式换到我的新号(我要煎鱼说)去开更了,欢迎大家再次关注我,新号的二维码如下: 感谢你的再次关注,如果你身边也有朋友关注了我,欢迎周知一下。 又要重新开始了,想想就激...

Go1.13 defer 的性能是如何提高的?

2019-09-07
阅读 5 分钟
7.1k
最近 Go1.13 终于发布了,其中一个值得关注的特性就是 defer 在大部分的场景下性能提升了30%,但是官方并没有具体写是怎么提升的,这让大家非常的疑惑。而我因为之前写过《深入理解 Go defer》 和 《Go defer 会有性能损耗,尽量不要用?》 这类文章,因此我挺感兴趣它是做了什么改变才能得到这样子的结果,所以今天和大...

goproxy.cn - 为中国 Go 语言开发者量身打造的模块代理

2019-09-05
阅读 3 分钟
70.1k
Go 1.13 的发布为 Go 带来了不少变化(详见:[链接] ),有些变化可能是开发者无法直接感觉到的,但有些又是和开发者日常开发息息相关的。其中,Go modules 的扶正就是这次 Go 1.13 发布中开发者能直接感觉到的最大变化。

用 GODEBUG 看 GC

2019-09-02
阅读 4 分钟
13.1k
在计算机科学中,垃圾回收(GC)是一种自动管理内存的机制,垃圾回收器会去尝试回收程序不再使用的对象及其占用的内存。而最早 John McCarthy 在 1959 年左右发明了垃圾回收,以简化 Lisp 中的手动内存管理的机制(来自 wikipedia)。

用 GODEBUG 看调度跟踪

2019-08-19
阅读 8 分钟
10.6k
让 Go 更强大的原因之一莫过于它的 GODEBUG 工具,GODEBUG 的设置可以让 Go 程序在运行时输出调试信息,可以根据你的要求很直观的看到你想要的调度器或垃圾回收等详细信息,并且还不需要加装其它的插件,非常方便,今天我们将先讲解 GODEBUG 的调度器相关内容,希望对你有所帮助。

Golang 大杀器之跟踪剖析 trace

2019-07-12
阅读 5 分钟
22.1k
在 Go 中有许许多多的分析工具,在之前我有写过一篇 《Golang 大杀器之性能剖析 PProf》 来介绍 PProf,如果有小伙伴感兴趣可以去我博客看看。

从实践到原理,带你参透 gRPC

2019-06-29
阅读 19 分钟
45.7k
gRPC 在 Go 语言中大放异彩,越来越多的小伙伴在使用,最近也在公司安利了一波,希望能通过这篇文章能带你一览 gRPC 的爱与恨。本文篇幅较长,希望你做好阅读准备,目录如下:

gRPC+gRPC Gateway 能不能不用证书?

2019-06-22
阅读 3 分钟
7.5k
如果你以前有涉猎过 gRPC+gRPC Gateway 这两个组件,你肯定会遇到这个问题,就是 “为什么非得开 TLS,才能够实现同端口双流量,能不能不开?” 又或是 “我不想用证书就实现这些功能,行不行?”。我被无数的人问过无数次这些问题,也说服过很多人,但说服归说服,不代表放弃。前年不行,不代表今年不行,在今天我希望分享...

Go defer 会有性能损耗,尽量不要用?

2019-06-16
阅读 3 分钟
12.8k
上个月在 @polaris @轩脉刃 的全栈技术群里看到一个小伙伴问 “说 defer 在栈退出时执行,会有性能损耗,尽量不要用,这个怎么解?”。

深入理解 Go defer

2019-05-27
阅读 7 分钟
10.4k
在上一章节 《深入理解 Go panic and recover》 中,我们发现了 defer 与其关联性极大,还是觉得非常有必要深入一下。希望通过本章节大家可以对 defer 关键字有一个深刻的理解,那么我们开始吧。你先等等,请排好队,我们这儿采取后进先出 LIFO 的出站方式...

深入理解 Go panic and recover

2019-05-21
阅读 9 分钟
8.4k
作为一个 gophper,我相信你对于 panic 和 recover 肯定不陌生,但是你有没有想过。当我们执行了这两条语句之后。底层到底发生了什么事呢?前几天和同事刚好聊到相关的话题,发现其实大家对这块理解还是比较模糊的。希望这篇文章能够从更深入的角度告诉你为什么,它到底做了什么事?

我要在栈上。不,你应该在堆上

2019-05-20
阅读 5 分钟
6.5k
原文地址:我要在栈上。不,你应该在堆上 前言 我们在写代码的时候,有时候会想这个变量到底分配到哪里了?这时候可能会有人说,在栈上,在堆上。信我准没错... 但从结果上来讲你还是一知半解,这可不行,万一被人懵了呢。今天我们一起来深挖下 Go 在这块的奥妙,自己动手丰衣足食 问题 {代码...} 开局就是一把问号,带...

为什么遍历 Go map 是无序的?

2019-04-07
阅读 5 分钟
7k
有的小伙伴没留意过 Go map 输出顺序,以为它是稳定的有序的;有的小伙伴知道是无序的,但却不知道为什么?有的却理解错误?今天我们将通过本文,揭开 for range map 的 “神秘” 面纱,看看它内部实现到底是怎么样的,输出顺序到底是怎么样?

简单围观一下有趣的 //go: 指令

2019-03-31
阅读 3 分钟
6.1k
原文地址:简单围观一下有趣的 //go: 指令 前言 如果你平时有翻看源码的习惯,你肯定会发现。咦,怎么有的方法上面总是写着 //go: 这类指令呢。他们到底是干嘛用的? 今天我们一同揭开他们的面纱,我将简单给你介绍一下,它们都负责些什么 go:linkname {代码...} 该指令指示编译器使用 importpath.name 作为源代码中声明...

深入理解 Go map:赋值和扩容迁移

2019-03-24
阅读 11 分钟
16.5k
在 上一章节 中,数据结构小节里讲解了大量基础字段,可能你会疑惑需要 #&(!……#(!¥! 来干嘛?接下来我们一起简单了解一下基础概念。再开始研讨今天文章的重点内容。我相信这样你能更好的读懂这篇文章

深入理解 Go map:初始化和访问元素

2019-03-05
阅读 7 分钟
13.1k
从本文开始咱们一起探索 Go map 里面的奥妙吧,看看它的内在是怎么构成的,又分别有什么值得留意的地方? 第一篇将探讨初始化和访问元素相关板块,咱们带着疑问去学习,例如: 初始化的时候会马上分配内存吗? 底层数据是如何存储的? 底层是如何使用 key 去寻找数据的? 底层是用什么方式解决哈希冲突的? 数据类型那么...