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

luozhiyun的技术学习

专栏作者
155
文章
155825
阅读量
36
订阅数
聊聊两个Go即将过时的GC优化策略
这篇文章本来是要讲 Go Memory Ballast 以及 Go GC Tuner 来调整 GC 的策略,实现原理怎么样,效果如何。但是在写的过程中,发现 Go 1.19版本出了,有个新特性让这两个优化终究成为历史。
luozhiyun
2022-09-28
9400
在Go中如何正确重试请求
我们平时在开发中肯定避不开的一个问题是如何在不可靠的网络服务中实现可靠的网络通信,其中 http 请求重试是经常用的技术。但是 Go 标准库 net/http 实际上是没有重试这个功能的,所以本篇文章主要讲解如何在 Go 中实现请求重试。
luozhiyun
2022-09-21
1.8K0
聊聊 Redis 是如何进行请求处理
我记得我在 一文说透 Go 语言 HTTP 标准库 这篇文章里面解析了对于 Go 来说是如何创建一个 Server 端程序的:
luozhiyun
2022-08-12
4080
透过Redis源码探究字符串的实现
最近在通过 Redis 学 C 语言,不得不说,Redis的代码写的真的工整。这篇文章会比较全面的深入的讲解了Redis数据结构字符串的源码实现,希望大家能够从中学到点东西。
luozhiyun
2022-06-19
1800
探究 Go 源码中 panic & recover 有哪些坑?
写这一篇文章的原因是最近在工作中有位小伙伴在写代码的时候直接用 Go 关键字起了一个 Goroutine,然后发生了空指针的问题,由于没有 recover 导致了整个程序宕掉的问题。代码类似这样:
luozhiyun
2021-11-24
1.1K0
6.深入TiDB:乐观事务
由于 TiDB 的事务模型沿用了 Percolator 的事务模型。所以先从 Percolator 开始,关于 Percolator 论文没看过的同学看这里:https://www.luozhiyun.com/archives/609 我已经翻译好了
luozhiyun
2021-11-02
5700
3.深入TiDB:执行优化讲解
在 handleQuery 里面会调用 cc.ctx.Parse,这一句代码最终会调用到 Parser 解析器的 Parse 方法进行解析:
luozhiyun
2021-09-26
2700
2.深入TiDB:入口代码分析及调试 TiDB
其实 TiDB 的调试非常的简单,我这里用的是 TiDB release-5.1,那么需要将 Go 的版本更新到 1.16 之后。main 函数是在 tidb-server 包里面,直接运行就好了。为了保证环境的统一,我用的是 Linux 的环境。
luozhiyun
2021-09-14
3780
1.深入TiDB:初见TiDB
本篇文章应该是我研究的 TiDB 的第一篇文章,主要是介绍整个 TiDB 架构以及它能支持哪些功能为主。至于其中的细节,我也是很好奇,所以不妨关注一下,由我慢慢讲述。
luozhiyun
2021-09-14
7500
从源码剖析Go语言基于信号抢占式调度
在 Go 的 1.14 版本之前抢占试调度都是基于协作的,需要自己主动的让出执行,但是这样是无法处理一些无法被抢占的边缘情况。例如:for 循环或者垃圾回收长时间占用线程,这些问题中的一部分直到 1.14 才被基于信号的抢占式调度解决。
luozhiyun
2021-04-01
5460
Go中由WaitGroup引发对内存对齐思考
WaitGroup使用大家都会,但是其中是怎么实现的我们也需要知道,这样才能在项目中尽可能的避免由于不正确的使用引发的panic。并且本文也将写一下内存对齐方面做一个解析,喜欢大家喜欢。
luozhiyun
2021-01-21
1K0
多图详解Go的sync.Pool源码
总所周知Go 是一个自动垃圾回收的编程语言,采用三色并发标记算法标记对象并回收。如果你想使用 Go 开发一个高性能的应用程序的话,就必须考虑垃圾回收给性能带来的影响。因为Go 在垃圾回收的时候会有一个STW(stop-the-world,程序暂停)的时间,并且如果对象太多,做标记也需要时间。
luozhiyun
2020-12-29
6390
5.深入Istio源码:Pilot-agent作用及其源码分析
Sidecar在注入的时候会注入istio-init和istio-proxy两个容器。Pilot-agent就是启动istio-proxy的入口。通过kubectl命令我们可以看到启动命令:
luozhiyun
2020-12-16
1.6K0
4.深入Istio源码:Pilot的Discovery Server如何执行xDS异步分发
Discovery Service主要为数据面(运行在 sidecar 中的 Envoy 等 proxy 组件)提供控制信息服务。Discovery Service为数据面提供的信息叫做xds ,这里的 x 是一个代词,在 Istio 中,xds 包括 cds(cluster discovery service)、lds(listener discovery service)、rds(route discovery service)、eds(endpoint discovery service),而 ads(aggregated discovery service) 是对这些服务的一个统一封装。
luozhiyun
2020-12-08
9440
3.深入Istio:Pilot配置规则ConfigController
Config Controller用于管理各种配置数据,包括用户创建的流量管理规则和策略。Istio目前支持三种类型的Config Controller:
luozhiyun
2020-12-01
5880
2.深入Istio:Pilot服务发现
pilot-discovery是在Pilot中的核心服务,在Pilot中名为pilot-discovery,主要功能是从注册中心(如 kubernetes 或者 consul)获取信息并汇集,从 Kubernetes API Server 中获取流量规则,并将服务信息和流量规则转化为数据面可以理解的格式,通过标准的数据面 API 下发到网格中的各个SideCar中。
luozhiyun
2020-11-24
1.4K0
1.深入Istio:Sidecar自动注入如何实现的?
这篇文章打算讲一下sidecar,我在刚学习Istio的时候会有一些疑惑,sidecar是如何做到无感知的注入的,很多学习资料都没有详细去讲这部分的内容,下面打算解析一下。
luozhiyun
2020-11-12
2K0
14.深入k8s:kube-proxy ipvs及其源码分析
这一篇是讲service,但是基础使用以及基本概念由于官方实在是写的比较完整了,我没有必要复述一遍,所以还不太清楚的小伙伴们可以去看官方的文档:https://kubernetes.io/docs/concepts/services-networking/service/。
luozhiyun
2020-10-10
1.5K0
13.深入k8s:Pod 水平自动扩缩HPA及其源码分析
Pod 水平自动扩缩全名是Horizontal Pod Autoscaler简称HPA。它可以基于 CPU 利用率或其他指标自动扩缩 ReplicationController、Deployment 和 ReplicaSet 中的 Pod 数量。
luozhiyun
2020-10-10
2K0
12.深入k8s:kubelet创建pod流程源码分析
在上一篇中,我们知道在kubelet中,工作核心就是围绕着整个syncLoop来完成不同的工作的。syncLoop会根据不同的上报信息管理pod的生命周期,这些操作都是通过HandlePods来实现的。
luozhiyun
2020-09-28
1.4K0
点击加载更多
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档