首页
学习
活动
专区
工具
TVP
发布

网管叨bi叨

专栏作者
273
文章
401766
阅读量
33
订阅数
Go版本大于1.13,程序里这样做错误处理才地道
之前写过几篇关于 Go 错误处理的文章,发现文章里不少知识点都有点落伍了,比如Go在1.13后对错误处理增加了一些支持,最大的变化就是支持了错误包装(Error Wrapping),以前想要在调用链路的函数里包装错误都是用"github.com/pkg/errors"这个库。
KevinYan
2023-01-03
3160
生产环境Go程序内存泄露,用pprof如何快速定位
内存泄漏可以在整个系统中以多种形式出现,除了在写代码上的疏忽,忘了关闭该关闭的资源外,更多的时候导致系统发生内存泄露原因可能是设计上决策不对、或者业务逻辑上的疏忽没有考虑到一些边界条件。
KevinYan
2022-02-10
3.2K0
Go 语言里怎么正确实现枚举?答案藏着官方的源码里
在编程领域里,枚举是用来表示只包含有限数量的固定值的类型,在开发中一般用于标识错误码或者状态机。拿一个实体对象的状态机来说,它通常与这个对象在数据库里对应记录的标识状态的字段值相对应。
KevinYan
2022-02-10
8120
几个预防并发搞垮下游服务的方法
上一篇文章 我用休眠做并发控制,搞垮了下游服务 发出去后得到不少网友的回应,有人问自己平时用的方案行不行,有人建议借鉴TCP的拥塞控制策略,动态地调整发起的并发数,还有人问为啥我要管下游抗不抗得住。
KevinYan
2021-08-06
3960
gRPC的平滑关闭和在Kubernetes上的服务摘流方案总结
平滑关闭和服务摘流是保证部署了多节点的应用能够持续稳定对外提供服务的两个重要手段,平滑关闭保证了应用节点在关闭之前处理完已接收到的请求,以前在文章「学习用Go编写HTTP服务」里给大家介绍过怎么用net/http库提供的 http.ShutDown平滑关停HTTP 服务,今天再给大家介绍一下gRPC分布式服务的平滑关停方法。应用在进入平滑关闭阶段后拒绝为新进来的流量提供服务,如果此时继续有新流量访问而来,势必会让发送请求的客户端感知到服务的断开,所以在平滑关闭应用前我们还要对应用节点做摘流操作,保证网关不会再把新流量分发到要关闭的应用节点上才行。
KevinYan
2021-04-22
1.2K0
项目改用GoModules管理依赖的方法和经验总结
Go语言官方提供的依赖包管理工具已经发布很久了,有很多大佬的文章对Go Modules做了非常详尽的介绍,比如煎鱼大佬的: Go Modules终极入门(文章链接:https://juejin.cn/post/6844903433846145038)。
KevinYan
2020-12-15
9210
Golang程序性能分析(三)用pprof分析gRPC服务的性能
这是Golang程序性能分析系列文章的最后一篇,这次我们的主要内容是如何使用pprof工具对gRPC服务的程序性能进行分析。关于gRPC这个框架的文章之前已经写过不少文章了,如果你对它还不太熟悉,不知道它是用来干什么的,可以通过gRPC入门系列的文章对它先做个了解。
KevinYan
2020-12-15
1.2K0
Golang程序性能分析(二)在Echo和Gin框架中使用pprof
今天继续分享使用Go官方库pprof做性能分析相关的内容,上一篇文章:Golang程序性能分析(一)pprof和go-torch中我花了很大的篇幅介绍了如何使用pprof采集Go应用程序的性能指标,如何找到运行缓慢的函数,以及函数中每一部的性能消耗细节。这一节的重点会放在如何在Echo和Gin这两个框架中增加对pprof HTTP请求的支持,因为pprof只是提供了对net/http包的ServerMux的路由支持,这些路由想放到Echo和Gin里使用时,还是需要有点额外的集成工作。
KevinYan
2020-11-27
3.3K0
Kubernetes Ingress入门指南和实践练习
Ingress也是Kubernetes项目里的一种 API 对象,它公开了从集群外部到集群内Service的 HTTP 和 HTTPS 路由,这些路由由 Ingress 资源上定义的规则控制。
KevinYan
2020-10-10
9590
学练结合,快速掌握Kubernetes Service
今天这篇文章里我们来讲一下Kubernetes里的Service对象。其实前面的文章《Kubernetes初体验--部署运行Go项目》里我们已经与Service有过一次短暂接触了,在那篇文章里我说用Deployment对象部署完应用后还需要向外界暴露入口才能通过HTTP访问到Kubernetes集群里的应用Pod,当时使用的是这样一条命令,其实就是创建的Service对象:
KevinYan
2020-09-27
6670
K8s上的Go服务怎么扩容、发版更新、回滚、平滑重启?教你用Deployment全搞定!
经过前面不少文章的铺垫,终于可以写这个大家都感兴趣的话题了,在前面两篇文章,我们讲了Kubernetes里的 Pod和 副本集ReplicaSet (RS) 这两个API对象。知道了Pod是Kubernetes里的最小调度单元,ReplicaSet则是控制Pod副本数的一个基础控制器。文章最后留下了一个话题:
KevinYan
2020-09-10
1.3K0
线上Go项目的Docker镜像应该怎么构建?
上期的文章:Kubernetes入门实践--部署运行Go项目发布后,有网友留言说我文章里演示的镜像是把项目文件和Go都打包到了镜像里,这样镜像的占用空间会比较大。
KevinYan
2020-07-15
2.2K0
Minikube-运行在笔记本上的Kubernetes集群
Minikube是一个可以在本地电脑上运行Kubernetes的工具。Minikube会在笔记本电脑中的虚拟机上运行一个单节点的Kubernetes集群,让用户能对Kubernetes进行体验或者在之上进行Kubernetes的日常开发。
KevinYan
2020-06-28
1K0
原子操作和互斥锁的区别
这个系列的文章里介绍了很多并发编程里经常用到的技术,除了Context、计时器、互斥锁还有通道外还有一种技术--原子操作在一些同步算法中会被用到。今天的文章里我们会简单了解一下Go语言里对原子操作的支持,然后探讨一下原子操作和互斥锁的区别。
KevinYan
2020-06-16
4.2K0
面试官让我用channel实现sync包里的同步锁,是不是故意为难我?
今天,我将深入探讨Go语言channel和select语句的表达能力。为了演示只用这两个原语就可以实现多少功能,我将从头开始用它们重写sync包。
KevinYan
2020-05-21
7400
没有更多了
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档