• 置顶

    链路追踪学习

    题记​ 首先明确以下一段话:早期单体架构下,链路追踪也存在,比如用简单日志框架实现(Log4j),现在分布式系统下,变成分布式链路追踪,一般采用opentracing标准,实现方式有jaeger等。 ​ 本文所说的链路追踪都是指分布式链路追踪(或者叫做全链路追踪)。 什么是链路追踪​ 链路追踪是指在分布式系统中,将一次请求的处理过程进行记录并聚合展示的一种方法。 目的是将一次分布式请求的调用...
  • 后台服务架构高性能设计之道

    本文主要是转载于腾讯技术工程微信公众号的文章,是一篇关于如何设计一个高性能/高并发/高可用/高可靠/可扩展的系统,大纲如下: 原文链接:后台服务架构高性能设计之道
  • SQL的Count函数优化

    题记​ 产品发现内部资源平台查询资源列表接口很慢,然后我开始排查问题,使用Jaeger(阿里云Golang Agent)查询发现select count(*)一行sql语句运行了300ms,然后EXPLAIN语句发现全表扫描,然后开始查资料优化count(*)的速度,最后写了这篇文章。 什么是count()函数​ count()是一个聚合函数,函数的参数不仅可以是字段名,也可以是其他任意表达...
  • Golang八股文汇总

    题记本文记录Golang语言面试的八股文。 Go基础init和main函数相关特点init函数(没有输入参数、返回值)的主要作用: 初始化不能采用初始化表达式初始化的变量。 程序运行前的注册。 实现sync.Once功能。 其他 init 顺序 1、在同一个 package 中,可以多个文件中定义 init 方法 2、在同一个 go 文件中,可以重复定义 init 方法 3、在同一个 p...
  • Go语言面试题精讲

    题记Golang面试前用于突击的八股文。 Go基础Go 程序的基本结构? Go 有哪些关键字? Go 有哪些数据类型? Go 方法与函数的区别? Go 方法值接收者和指针接收者的区别?如果方法的接收者是指针类型,无论调用者是对象还是对象指针,修改的都是对象本身,会影响调用者; 如果方法的接收者是值类型,无论调用者是对象还是对象指针,修改的都是对象的副本,不影响调用者; 12345678910...
  • Go服务开发Tips

    1、如何性能优化五大步骤:定目标、找瓶颈点、分析瓶颈原因、性能优化、验证目标 2、优化性能三大利器 pprof cpu采样用于确定程序中哪些函数或代码片段在运行时消耗了大量的CPU 时间,帮助定位CPU性能瓶颈。 allocs采样侧重于定位那些频繁进行内存分配的函数。 heap采样用于查看存活对象的内存分配情况,侧重于定位内存泄漏问题。 benchmark trace 3、代码优化 ...
  • K8S入门

    基本概念用 Docker 进行容器化管理之后方便了很多,容器少的话,可以使用 Shell 脚本来管理。但随着容器越来越多,容器也越来越难以管理,项目架构也越来越复杂,如何管理和维护这些容器,就是 Kubernetes 要解决的问题。 Kubernetes 组件NodeNode:节点,一个物理机或者一台虚拟机。 PodPod 是 Kubernetes 的最小调度单元,可以理解为容器的抽象。一个...
  • golang的pprof与火焰图实战

    题记​ 性能分析是一种动态程序分析方法,用于收集程序运行时的信息以研究程序性能行为。在日常开发中对定位和优化性能问题非常重要,能够帮助我们以最小的投入获得最大的性能优化回报。 1、pprof是什么​ 在Go语言中,pprof是用于可视化和分析性能分析数据的工具,pprof以profile.proto读取分析样本的集合,并生成报告以可视化并帮助分析数据(支持文本和图形报告)。 2、pprof作...
1236