06 2019 档案
摘要:前言 上一篇文章中已经给大家整体的介绍了开源监控系统Prometheus,其中Exporter作为整个系统的Agent端,通过HTTP接口暴露需要监控的数据。那么如何将用户指标通过Exporter的形式暴露出来呢?比如说在线,请求失败数,异常请求等指标可以通过Exporter的形式暴露出来,从而基于
阅读全文
摘要:前言 Prometheus是CNCF的一个开源项目,Google BorgMon监控系统的开源版本,是一个系统和服务的监控系统。周期性采集metrics指标,匹配规则和展示结果,以及触发某些条件的告警发送。 特点 Prometheus主要区别于其他监控系统的特点是: 多维度数据模型(时序数据是由指标
阅读全文
摘要:前言 go test 上篇 给大家介绍了golang自带的测试框架,包括单元测试和性能测试。但是在实际生产中测试经常会遇到一些网络或者依赖的第三方系统接口,运行测试用例的时候希望忽略这些接口的实际依赖,聚焦在具体业务逻辑代码,这就需要模拟这些接口的行为,也就是我今天介绍给大家的golang/mock
阅读全文
摘要:前言 Go语言本身集成了轻量级的测试框架,由go test命令和testing包组成。包含单元测试和压力测试,是保证我们编写健壮Golang程序的有效工具。 演示环境 示例 老规矩,我会用一个简单的示例演示go test的用法,让大家有一个直观的感受。 my.go文件内容: my_test.go文件
阅读全文
摘要:前言 Compose是一个定义和运行多个Docker应用的工具,用一个YAML(dockder-compose.yml)文件就能配置我们的应用。然后用一个简单命令就能启动所有的服务。Compose编排Docker服务的优势是在单机测试场景,因为Compose的安装简单,开箱即用,yaml的定义也复用
阅读全文
摘要:前言 程序性能分析我相信是每个程序员都会遇到的问题,比如说一个程序的CPU为什么占用这么高?有没有优化的空间?又比如程序出现了内存泄漏如何排查等等。如果是C++程序会借助于Google pprof c++ profile,java程序会依赖于jstack等工具,幸运的是Golang语言本身就集成了性
阅读全文
摘要:前言 相信看完了我上篇Docker基础原理的读者一定是手痒痒想实际操作以下Docker,下面我会用实际的命令演示一遍Docker的基本操作。本文的操作会包括镜像、容器、仓库三个方面。 演示环境 $ docker version Client: Docker Engine - Community Ve
阅读全文
摘要:前言 go 1.5 引进了vendor管理工程依赖包,但是vendor的存放路径是在GOPATH底下,另外每个依赖还可以有自己的vendor,通常会弄得很乱,尽管dep管理工具可以将vendor平级化管理,但是相对GOPATH的路径是逃不掉的。另外,各个包的版本管理也显得原始,甚至有的开发将依赖包从
阅读全文
摘要:前言 Docker是一个开源的软件项目,让用户程序部署在一个相对隔离的环境运行,借此在Linux操作系统上提供一层额外的抽象,以及操作系统层虚拟化的自动管理机制。需要额外指出的是,Docker并不等于容器(containers),Docker只是容器的一种,其他的种类的容器还有Kata contai
阅读全文
摘要:前言 在分布式系统中,分布式锁是为了解决多实例之间的同步问题。例如master选举,能够获取分布式锁的就是master,获取失败的就是slave。又或者能够获取锁的实例能够完成特定的操作。 目前比较常用的分布式锁实现有两种,基于zookeeper实现和基于redis实现。zookeeper和redi
阅读全文
摘要:前言 印象中从2016年开始“微服务”这个词逐渐为人们所熟知,那究竟什么是微服务呢? 微服务是一种软件架构风格,一种架构模式,提倡将单体应用划分为一组小的服务,服务之间互相协调,互相配合,为用户提供最终价值。 每个服务运行在其独立的进程中,服务与服务之间采用轻量级的通信机制互相沟通(通常是基于HTT
阅读全文
摘要:实现原理 快速排序思想:如果要排数组p到r之间的一组数据,选择p到r之间任意一个一个数据作为pivot(分区点,这里选择的是s[r]作为pivot)。遍历p到r之间的数据,将小于pivot的数据放在左边,其他的放右边。经过这一步骤后数据p到r被分成了三份,前面p~q-1的数据小于pivot,q+1~
阅读全文
摘要:前言 设计模式一直是程序员津津乐道的事情,经常codereview的时候就会有人提出,这个代码不符合XX设计原则或者XX设计模式。关于设计模式的书籍市场上也是林林种种,多如牛毛。笔者有幸拜读了GOF(gang of four)的神作《设计模式--可复用的面向对象软件的基础》在感慨四位大师智慧的同时不
阅读全文

浙公网安备 33010602011771号