Go1.16新特性|标准库和其他变化

支持静态资源嵌入 参见之前的文章:Go1.16新特性|embed静态资源嵌入 新增 io/fs 的支持 Go 1.16 标准库新增 io/fs 包,并定义了一个 fs.File 接口用于表示一个只读文件树 (tree of file) 的抽象。 io/fs 包的两个最重要的接口如下: 1 2 3 4 5 6……

阅读全文

Go1.16新特性|Module功能新变化

Module 功能默认开启 在 Go 1.16 版本中,Go module-aware 模式成为了默认模式 (另一种则是传统的 gopath 模式)。module-aware 模式成为默认意味着什么呢?意味着 GO111MODULE 的值默认为 on 了。 这里将 Go 1.13 版本之前、Go 1.13 版本以及 Go 1.16 版本在 GO111MODULE……

阅读全文

Go1.16新特性|embed静态资源嵌入[转]

本文转自:https://colobu.com/2021/01/17/go-embed-tutorial/,并稍作修改。 Go 编译的程序非常适合部署,如果没有通过 CGO 引用其它的库的话,我们一般编译出来的可执……

阅读全文

Prometheus学习笔记|02.监控数据可视化

Prometheus UI 提供了快速验证 PromQL 以及临时可视化支持的能力,但其可视化能力却比较弱。一般情况下,我们都用 Grafana 来实现对 Prometheus 的可视化实现。 什么是Grafana Grafana 是一个开源的可视化平台,并且提供了对 Prometheus 的完整支持。 Grafana has become the wo……

阅读全文

Prometheus学习笔记|01.安装与快速入门

为了能够更加直观的了解 Prometheus Server,接下来我们将在本地部署并运行一个 Prometheus Server 实例,通过 Node Exporter 采集当前主机的系统资源使用情况。 本文基于 MacOS Go1.15.8 安装 Prometheus Server Prometheus 基于 Golang 编写、编译后的软件包,不依赖于任何的第三方依赖。用户……

阅读全文

Prometheus学习笔记|00.简介与原理

第一次接触并使用 Prometheus 是在上家公司(QTT)做一个商城项目,当然只是简单的使用并未过多的深入了解、学习。到现在,Prometheus 已经是服务监控领域的标配了,是时候深入好好研究总结一下它了。 服务治理有一……

阅读全文

hystrix-go 之流量控制实现

在分析 hystrix-go 主流程中,我们知道只有当获取令牌成功后才能继续往下正常执行用户自定义的闭包函数,否则还是会进行降级处理。 1 cmd.ticket = <-circuit.executorPool.Tickets: // 获取令牌成功 今天我们分析下,hystrix-go 是如何进行流量控制的。 源码分析……

阅读全文

hystrix-go 之统计控制器实现

上一篇 我们分析断路器时有用到 metricExchange,但并未展开详细介绍,本篇我们主要介绍它以及实现原理。 metricExchange 主要是用来收集处理上报的所有事件,并对事件进行汇总处理,最后根据计算出来的一段时间内的错……

阅读全文

hystrix-go 之断路器实现

上一篇我们分析 hystrix-go 主流程时知道,对于每个 command 都有一个对应的断路器,而且在 GoC 中首先要通过 GetCircuit(name) 获取断路器对象,该方法会在断路器不存在时新建一个,并赋值给 cmd.circuit。 回顾下 command 结构体: 1 2 3 4 5 type command struct {……

阅读全文

hystrix-go 之核心流程实现

前言 上一篇文章我们介绍了服务保护熔断器 sentinel-go 如何使用,今天介绍另外一款优秀的集限流、熔断、降级于一身的组件 hystrix-go。hystrix-go 是著名开源库 hystrix 的 Go 语言简化版本,实现了核心功能,源码实现……

阅读全文