pprof 工具使用

pprof golang pprof是golang的可视化和性能分析的工具。其提供了可视化的web页面,火焰图等更直观的工具。 可以使用 go tool pprof 进行使用 $ go tool pprof usage: Produce output in the specified format. pprof <format> [options] [binary] <source> ... Omit the format to get an interactive shell whose co...阅读全文

简书 2020-12-25 01:32:37 一个大大大坑

从log4j2的角度看golang的zap

序 本文主要从log4j2的角度对zap做一下小结 log4j2 配置 从配置文件上看,分为如下几个部分: properties appenders filter pattern layout mdc policies SizeBasedTriggeringPolicy TimeBasedTriggeringPolicy rollover strategy loggers root logger async logger async root 使用 在使用上主要是考虑几点: log的输入 mdc...阅读全文

设计精巧!交互性很好的 Go 语言数据可视化库

【导语】Echarts的Go版本,是Go为数不多的可视化数据第三方库之一,具有良好的交互性,设计精巧、丰富多彩的图表。 简介 Go是一门为高并发、高性能的开发而设计的语言,在处理海量并发或数据的过程中,无疑会需要进行数据的分析和展示,go-echarts正是一个优秀的数据可视化第三方库。 Echarts是开源的优秀可视化图表库,其具有良好的交互性和精巧的设计图表,由于其突出的优势,有很多其他语言也实现了相应版本的接口,比如pyecharts,而go-echarts正是Go版本的echarts,目...阅读全文

51CTO博客 2020-12-24 19:58:07 mb5fe1900cd6223

golang 常用命令

以下命令基于go版本1.15.3进行测试基本命令go help go env go version交叉编译# Windows下编译Linux SET CGO_ENABLED=0 SET GOARCH=amd64 SET GOOS=linux go build xx.go 编译参数go build当编译包时,会自动忽略'_test.go'的测试文件。# go build -o 指定编译输出的名称 # win下编译生成指定名称的可执行文件 go build -o custom.exe send.go...阅读全文

Segmentfault 2020-12-28 13:32:34 tim_xiao

从log4j2的角度看golang的zap

序本文主要从log4j2的角度对zap做一下小结log4j2配置从配置文件上看,分为如下几个部分:propertiesappendersfilterpattern layoutmdcpoliciesSizeBasedTriggeringPolicyTimeBasedTriggeringPolicyrollover strategyloggersrootloggerasync loggerasync root使用在使用上主要是考虑几点:log的输入mdc的输入kv结构的输入tracing注入log...阅读全文

Segmentfault 2020-12-28 13:32:34 codecraft

Supervisor与Logrotate

首先介绍一下背景,本人运维小白兼golang新手,写这个主要记录采坑过程,如果可以对遇到同样问题的同学起到一点点帮助也是不错的。 在golang的gin项目中使用supervisor守护进程,用子进程配置将标准输出日志转移到指定目录下,然后使用阿里云的日志服务将标准输出日志转移到线上做一些分析和预警。 项目上线之后一切正常,可是周日夜里三点左右阿里云的日志服务采集不到日志,一顿pv为0的告警过来,赶紧打开电脑,线上服务正常,松一口气,supervisor状态也正常,观察了一会业务数据正常就安然入...阅读全文

简书 2020-12-24 17:33:07 会写点代码的萌新运维

golang中:reflect.Type 与 reflect.Value

参考链接 官方文档 package main import ( "fmt" "reflect" ) type Person struct { Name string Age int } // 通过反射获取,反射对象的具体种类,请使用 Kind()方法或者 Kind().String() func main(){ p := Person{"张三",20} // 1、 typeOf := reflect.TypeOf(p) // 返回一个Type(类型)接口,并不是我们需要的种类 valueOf :...阅读全文

简书 2020-12-24 17:33:07 Kotlin_2019

ApacheBeam简介

MapReduce 其实 MapReduce 的架构思想可以从两个方面来看。 一方面,它希望能提供一套简洁的 API 来表达工程师数据处理的逻辑。另一方面,要在这一套 API 底层嵌套一套扩展性很强的容错系统,使得工程师能够将心思放在逻辑处理上,而不用过于分心去设计分布式的容错系统。 这个架构思想的结果你早就已经知道了。MapReduce 这一套系统在 Google 获得了巨大成功。在 2004 年的时候,Google 发布的一篇名为“MapReduce: Simplified Data Pro...阅读全文

简书 2020-12-24 17:33:07 do_young

xxl-job-executor的gin中间件

xxl-job-executor的gin中间件 背景 xxl-job-executor-go是xxl-job的golang执行器,可以独立运行,有时候我们要与项目或者框架(如:gin框架)集成起来合并为一个服务,本项目因此而生。 本项目地址 https://github.com/gin-middleware/xxl-job-executor 执行器项目地址 https://github.com/xxl-job/xxl-job-executor-go 与gin集成示例 package main i...阅读全文

简书 2020-12-24 17:32:56 如水网

xxl-job执行器golang版——xxl-job-executor-go

xxl-job-executor-go 很多公司java与go开发共存,java中有xxl-job做为任务调度引擎,为此也出现了go执行器(客户端),使用起来比较简单: 支持 1.执行器注册 2.耗时任务取消 3.任务注册,像写http.Handler一样方便 4.任务panic处理 5.阻塞策略处理 6.任务完成支持返回执行备注 7.任务超时取消 (单位:秒,0为不限制) 8.失败重试次数(在参数param中,目前由任务自行处理) 9.可自定义日志 10.自定义日志查看handler 11.支...阅读全文

简书 2020-12-24 17:32:56 如水网

golang chan

chan是我们学习golang绕不开的一个话题,今天我就不讲基础的使用了,因为太多这种文章了,我讲一下channel底层的实现和它的数据结构 必须了解的数据结构 type hchan struct { qcount uint // 所有数据 dataqsiz uint // 数据size buf unsafe.Pointer // 指向真实数据的指针 elemsize uint16 closed uint32 elemtype *_type // 数据类型 sendx uint // send ...阅读全文

简书 2020-12-24 17:32:56 Stevennnmmm

从BTC脚本到Subscript:智能合约语言剖析

负熵学会(Extropy Institute)网站对广义的智能合约是这样定义的:能够让用户自己定义所需交易逻辑的代码程序,几乎存在于所有区块链系统,包括最广为人知的比特币,以及以太坊、超级账本、Parity、Zcash等。从编程语言表现或者运行环境考虑,智能合约可以分为脚本型、图灵完备型、可验证合约型三种。比特币系统可以允许通过编写基于堆栈的操作码(Opcode)来实现简单的交易逻辑,比如改变比特币花费的前提条件,这个系统称为比特币脚本系统。以太坊提供一种基于图灵完备语言的智能合约平台,也是最早...阅读全文

简书 2020-12-24 17:32:44 TrustBase

golang json忽略解析字段的两个方法 (golang json 序列化含有父节点指针的结构体时电脑跑满内存卡死)

比如一本书有关的结构体 会有针对书整体,和针对书的每一个章节这样的结构体。 我们在章节里定义一个 book的指针,这样就可以通过某本书的某个章节信息可以获取到整本书相关的信息,比较方便。 比如说有这样一个需求,判断这本书的章节数量是否大于1,如果章节只有1章,那么不在每章的标题中添加章节数,也就是 “第一章”,“第二章”这种。 我们定义一个方法设定每一章标题,Chapter结构体中不知道章节数,除非我们增加一个整本书的章节数字段,这种方式如果我们还需要其他整本书有关的信息,还需要不断添加字段,冗...阅读全文

简书 2020-12-24 17:32:42 mudssky

灵魂一问:数据库连接池到底该怎么配?

来自公众号:新世界杂货铺好家伙,我直接好家伙!GitHub不愧是全球最大的同性交友网站,资源丰富且质量高!连接池的配置应该按照什么原则来?这个问题在笔者心中疑惑良久,直到在GitHub上发现了About Pool Sizing这篇文章。看完之后一扫笔者心中阴霾,神清气爽。妈妈再也不用担心我在项目中瞎配连接池啦!以下内容为笔者根据原文翻译总结所得。原文提到开发人员经常会将连接池配置错误,而要想正确配置连接池需要理解一些原则,即使这些原则可能违反人类直觉。1万并发用户访问假设你有一个需要每秒处理2万...阅读全文

Segmentfault 2020-12-27 21:32:33 新世界杂货铺

GO语言Gin框架数据库操作(原生、xorm、gorm)

数据库是业务应用的核心,本节主要讲解gin框架(Go语言)操作原生数据库、go语言数据库ORM框架(gorm和xorm)。1.原生数据库package main import ( "database/sql" "fmt" "github.com/gin-gonic/gin" _ "github.com/go-sql-driver/mysql" "net/http" ) var sqlDb *sql.DB //数据库连接db var sqlResponse SqlResponse //响应clie...阅读全文

Segmentfault 2020-12-27 23:32:33 盛唐武士

探索Golang协程实现——从v1.0开始

李乐问题引入  提起协程,你可能会说,不就go func吗,我分分钟就能创建上万个协程。可是协程到底是什么呢?都说协程是用户态线程,这里的用户态是什么意思?都说协程比线程更轻量,协程轻量在哪里呢?  本文主要为读者介绍这些内容:Golang v1.0协程并发模型——MG模型,协程创建,协程切换,协程退出,以及g0协程,重在理解协程栈切换逻辑;为了理解协程栈,还需要简单了解下虚拟内存,函数栈帧以及简单的汇编语言;Golang v1.0协程调度逻辑;defer,panic以及recover底层实现原...阅读全文

Segmentfault 2020-12-27 19:32:33 LNMPR源码研究

谈服务可用性监控

# 谈服务可用性监控 一个服务的监控从整体考虑,要达到哪些才能算是完善的?我想,如果没有一个全局性的监控思考,一个服务的监控即使加的再多也是会有监控盲区的。 # 监控的层次 从基础机器到上层业务,分为三个不同层次:系统,应用,业务。不同的层次都应该有其不同的监控目的。 ## 系统监控 这个层次监控服务所在服务器的可用性。服务器的各项基本指标是否正常。包括服务器的CPU,服务器的磁盘,服务器的内存等。 有的服务器会进行服务混布,这种监控更为重要。因为其他服务导致的服务器...阅读全文

Go语言中文网 2020-12-24 10:06:58 jianfengye110