CloudNative 架构

CloudNative|云原生应用架构|云原生架构|容器化架构|微服务架构|平台架构|基础架构


  • 首页

  • 标签

  • 分类

  • 归档

  • k8s离线安装包

  • 搜索

探索 Go Trace 包

发表于 2020-11-22 | 分类于 golang , 追踪 | | 热度: ℃
字数统计: 1,176 字 | 阅读时长 ≈ 5 分钟

概述

本文基于 Go 1.13

Go 为我们提供了一个工具,可以在运行时进行跟踪,并获得程序执行的详细视图。这个工具可以通过在测试中使用标记 -trace 来启用,可以通过 pprof 来进行实时跟踪,也可以通过trace 包在代码中的任何位置启用。这个工具可以更加强大,因为您可以自定义 traces 来增强它。让我们回顾一下它是如何工作的。

流程

该工具的流程非常简单。每个事件,如内存分配;垃圾回收器的所有阶段;goroutines 在运行、暂停等情况下会被 Go 标准库静态记录,并格式化后显示。然而,在录制开始之前,Go 首先“stops the world”,并对当前的 goroutines 及其状态进行快照。

阅读全文 »

在 Go 中我应该使用指针还是拷贝结构体?

发表于 2020-11-20 | 分类于 go | | 热度: ℃
字数统计: 1,468 字 | 阅读时长 ≈ 7 分钟

概述

对于许多 Go 开发人员来说,系统地使用指针来共享结构体而不是拷贝本身似乎是性能方面的最佳选择。

为了理解使用指针而不是拷贝结构体的影响,我们将回顾两个用例。

阅读全文 »

Golang 六种错误处理技术,可帮助您编写优雅的代码

发表于 2020-11-20 | 分类于 golang , error | | 热度: ℃
字数统计: 1,652 字 | 阅读时长 ≈ 7 分钟

概述

当在 GO 中遇到错误时你会怎么做?

处理错误并不简单。在讨论功能性需求时,很少考虑错误处理需求,但是错误处理是软件开发的一个重要部分。

在 GO 中,错误条件以方法返回值的形式返回。在我看来,将错误条件作为主流程的一部分是很有用的 – 它让开发人员在编写功能代码时承担处理错误的责任。这种范例与其他编程语言(如 Java )所提供的非常不同 – 其中异常是完全不同的流程。虽然这种不同的风格使代码更具可读性,但也带来了新的挑战。

本文讨论了六种处理错误、重试和可服务性的技术。虽然很少有想法是琐碎的,但其他想法并不那么受欢迎。

因此,让我们从列表开始!

阅读全文 »

深入理解 kubernetes iptables proxy 模式

发表于 2020-11-19 | 分类于 kuberntes , kube-proxy | | 热度: ℃
字数统计: 1,746 字 | 阅读时长 ≈ 8 分钟

概述

最近在面试的时候问了不少 network request 如何到 k8s service backend 的问题,觉得可以整合一下网络上的资料,这篇主要讨论 iptables proxy mode。大部分的情况没有在使用 userspace proxy modes, ipvs proxy mode 可能要等到下一次讨论。

阅读全文 »

Go 多重错误管理

发表于 2020-11-19 | 分类于 golang , error | | 热度: ℃
字数统计: 851 字 | 阅读时长 ≈ 3 分钟

概述

在年度调查中,关于开发人员在使用 Go 时面临的最大挑战,Go 中的错误管理总是容易引起争论,并且是一个反复出现的话题。然而,当涉及到在并发环境中处理错误或为同一个 goroutine 合并多个错误时,Go 提供了很棒的包,使管理多个错误变得容易。让我们看看如何合并由单个 goroutine 生成的多个错误。

阅读全文 »
1234…22
icyboy

icyboy

109 日志
98 分类
182 标签
RSS
GitHub 微博 知乎
友情链接
  • 张家港水蜜桃
  • 运维开发
  • DevOps
© 2016 — 2021 icyboy | Site words total count: 330.8k
本站访客数:
博客全站共330.8k字