系统配置更改监控Jazigo
Jazigo是一个用 Go 语言编写的,用于检索多个设备的配置的工具,类似于rancid,fetchconfig,oxidized,Sweet。它具有以下特点: Go语言编写。单个可执行文件。没有运行时依赖。 直接使用:默认设置应该是开箱即用的。 工具配置自动保存为YAML。 但不要直接编辑配置文件。 产生多个并发的轻量级goroutine,以快速检测大量的设备。 很容易支持新平台。 可以从Web UI访问备份文件。 直接从Web UI查看文件差异。 支持SSH和TELNET。 可以将备份文件直接存储到AWS S3存储桶中。 可以调用外部程序并收集其输出...阅读全文
SRE: 调试 Go 中简单的内存泄漏
[内存泄漏](https://en.wikipedia.org/wiki/Memory_leak) 是一种即使当某块内存不再使用之后仍然没有被释放而产生的 bug。通常来说,它们是非常明显的,高度可见的,这使得它们成为学习程序调试的最佳选择。Go 是一门特别适合识别定位内存泄漏的语言,因为它有一套强大的工具链,这套工具链配备了非常强大的工具(*pprof*),它可以非常轻松地查明内存的使用情况。 我希望这篇文章能够演示如何直观地识别内存,并将其使用范围缩小至特定的进程内,将进程的泄漏与我们的工作关联起来,最后使用 *pprof* 工具找到内存泄漏的根源。设计这篇博客文章的初衷是为了简单地识别产生内存泄漏的根本原因。我们对 *pprof* 工具只做简单的功能介绍,不会对其做详细功能的描述。 [...阅读全文
go linux 命令执行问题
新手求教 想用go去linux下 执行一些linux 系统命令获得结果,没有用shell编程,但是go 不能执行history top 这样命令 有人也遇到过这样问题么 附上代码方便大家测试 ``` package main import ( "fmt" "os/exec" ) //换做 'ls' 这样名领是可以的 func getHistory(){ cmd := exec.Command("/bin/bash","-c","history") out,err := cmd.Output() if err != nil{ fmt.Println(err) } fmt.Println(string(out)) } ...阅读全文
golang 锁
手册中有点难懂,自己写个例子。 package main import ( "fmt" "time" ) func main() { // 不想用time sleep // 挂起通道 不让主main退出,我想看结果 //ch := make(chan bool) public := 1 go func() { fmt.Println("执行了1操作") for i := 0; i < 2; i++ { time.Sleep(time.Microsecond * 100) public++ fmt.Println(public) } }() go func() { fmt.Println("执行了2操作") for i := 0; i < 2; i++ { time.Sleep(time.Mi...阅读全文
数据库sdb
## [SDB](https://github.com/yemingfeng/sdb) :纯 golang 开发、数据结构丰富、持久化的 NoSQL 数据库 ------ ### 为什么需要 SDB? 试想以下业务场景: - 计数服务:对内容的点赞、播放等数据进行统计 - 评论服务:发布评论后,查看某个内容的评论列表 - 推荐服务:每个用户有一个包含内容和权重推荐列表 以上几个业务场景,都可以通过 MySQL + Redis 的方式实现。 这里的问题是:MySQL 更多的是充当持久化的能力,Redis 充当的是在线服务的读写能力。 那么只使用 Redis 行不行? 答案是否定的,因为 Redis 无法保证数据不丢失。 那有没有一种存储能够支持高级的数...阅读全文
中文分词器goscws
## golang goscws中文分词 scws是一个很好的中文分词库,由于项目中用到scws分词但go语言没有很好用的绑定,于是就自己 写了goscws,并且他支持协程分词。 ## 例子: 根据 SendText 设定的文本内容,返回一系列切好的词汇 ``` gs := goscws.NewScws() gs.SetCharset("utf8") err := gs.SetDict("/usr/local/scws/etc/dict.utf8.xdb", goscws.SCWS_XDICT_MEM) if err != nil { log.Println(err) } err = gs.SetRule("/usr/local/...阅读全文
16-Go语言异常处理
异常处理 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常 golang中提供了两种处理异常的方式 一种是程序发生异常时, 将异常信息反馈给使用者 一种是程序发生异常时, 立刻退出终止程序继续运行 打印异常信息 Go语言中提供了两种创建异常信息的方式 方式一: 通过fmt包中的Errorf函数创建错误信息, 然后打印 package main import "fmt" func main() { // 1.创建错误信息 var err error = fmt.Errorf("这里是错误信息") // 2.打印错误信息 fmt.Println(err) // 这里是错误信息 } 方式二: 通过errors包中的New函数创建错误信息,然后打印 package ...阅读全文
golang调用c动态库
golang调用c动态库 简介 golang调用c语言动态库,动态方式调用,可指定动态库路径,无需系统目录下 核心技术点 封装c动态库 go语言调用c代码 实例代码 封装c动态库 头文件 test_so.h int test_so_func(int a,int b); 源文件 test_so.c #include "test_so.h" int test_so_func(int a,int b) { return a*b; } go语言调用 /* #include "loadso.h" #cgo LDFLAGS: -ldl */ import "C" import "fmt" func main() { fmt.Println("20*30=", C.do_test_so_func(20, ...阅读全文
数字货币合约交易系统开发 区块链永续合约交易平台
数字货币合约交易系统开发—区块链永续合约交易平台搭建现阶段,基于区块链运行的计算机程序,可以说给金融系统带来了巨大影响。然而,与之对应的智能合约,则是一个全新领域,有着比较多的泡沫成分。全球领先数字资产交易平台OKEX不断创造着币圈一个又一个纪录,践行着自己安全、创新、可信赖的承诺。据了解,从2018年12月至4月底,OKEX永续合约上线4个月以来,OKEx合约总成交额达4500亿美金,单日最高成交额突破120亿美金,创行业之最。永续合约运行稳定,期间共上线BTC、LTC、ETH、XRP、EOS、BCH、TRX等九个币种,成交额突破350亿美金,并且实现全币种零分摊。随着数字货币期货的快速发展,广大用户看到了期货合约可以套期保值这一优势,并大力投身于合约交易之中。针对于资产量较大的用户来说,...阅读全文
使用go build 进行条件编译
当我们编写的Go代码依赖特定平台或者cpu架构的时候,我们需要给出不同的实现 C语言有预处理器,可以通过宏或者#define包含特定平台指定的代码进行编译 但是Go没有预处理器,他是通过 go/build包 里定义的tags和命名约定来让Go的包可以管理不同平台的代码 这篇文章将讲述Go的条件编译系统是如何实现的,并且通过实例来说明如何使用 1. 预备知识:go list命令的使用 在讲条件编译之前需要了解go list的简单用法 go list访问源文件里那些能够影响编译进程内部的数据结构 go list与go build ,test,install大部分的参数相同,但是go list不会执行编译操作。使用-f参数可以让我们提供的text/template里的代码在包含go/build.P...阅读全文
Golanggoappmonitor
golang 编写的程序,在程序开发完成之后,我们更想做的是对程序运行的状态能够时刻了解,或者在业务上跑着的程序出现了 bug 我们想要更加快速方便的知道问题出在哪里?监控包括程序运行的 cpu ,内存等系统状态,还有我们可以根据自己的需要自定义需要的监控数据。例如某一个任务队列,某一个函数的执行情况,错误出在哪里等...阅读全文
基于Go技术栈的微服务构建-微服务
编辑推荐: 本文来自于技术网站,本文的素材来源于我们在开发中的一些最佳实践案例,从开发、监控、日志这三个角度介绍了一些我们基于Go技术栈的微服务构建经验。 在大型系统的微服务化构建中,一个系统会被拆分成许多模块。这些模块负责不同的功能,组合成系统,最终可以提供丰富的功能。在这种构建形式中,开发者一般会聚焦于最大程度解耦模块的功能以减少模块间耦合带来的额外开发成本。同时,微服务面临着如何部署这些大量的服务系统、如何运维这些系统等新问题。 本文的素材来源于我们在开发中的一些最佳实践案例,从开发、监控、日志这三个角度介绍了一些我们基于Go技术栈的微服务构建经验。 开发 微服务的开发过程中,不同模块由不同的开发者负责,明确定义的接口有助于确定开发者的工作任务。最终的系统中,一个业务请求可能会涉及到多...阅读全文
学会如何使用移动用户反馈系统,让你玩转APP
课程介绍 移动用户反馈(Mobile Feedback)是一个App内部的用户反馈系统。不需要退出当前 App就可以快速发送文字、图片、语音进行意见反馈和报告Bug。 对于用户提出的问题,开发者可以做出及时的回复,和用户保持及时流畅的沟通,提升用户满意度(此外,自动抓取开发者APP在应用市场的评论数据,帮助开发者及时掌握用户对应用的评论)。 产品详情:https://www.aliyun.com/product/feedback 课时列表 • 课时1:移动用户反馈-快速接入 • 课时2:移动用户反馈-控制台使用说明 • 课时3:移动用户反馈-安卓接入 • 课时4:移动用户反馈-iOS接入指南 • 课时5:移动用户反馈-技术支持 开始学习h...阅读全文
阿里讲师带你一步步学习分步式文件存储系统技术及实现
课程介绍 本课程针对分步式文件存储系统的实现进行讲解,首先分析为什么要使用这种分步式存储系统,以及这种系统在设计时需要注意的问题,并比较现在市面常见的分步式存储系统(HDFS、Ceph等),展示阿里Pangu系统针对其中问题的解决方法,并结合Pangu系统说明分步式存储系统的设计要点。 讲师介绍 姚文辉,2009年加入阿里巴巴,从事阿里巴巴自主研发的云计算平台—飞天分布式操作系统中的分布式存储系统—盘古。 课程目标 • 学习分步式文件存储系统的实现 适合人群 • 云计算开发者 课时列表 • 课时1:分布式存储客观需求 • 课时2:小概率事件对分布式系统的挑战 • 课时3:常见分布式系统-终版 • 课时4:分布式设计要...阅读全文
go语言编程在windows下开发环境配置(图文)
1.在Go中文论坛下载最新的Go for windows release 2010-05-04 2.将下载包解压在c盘下。 3.设置环境变量。 Code: set goroot=c:/go set goarch=386 set path=c:/go/bin set goos=windows 4.编写第一个go语言程序代码。 Code: package main import "fmt" func main(){ fmt.Printf("this is first my/n go program") }; 用记事本编写并保存为h.go,我保存在了c:/go/work下 5.编译并运行h.go文件 运行cmd,转到c:/go/work下分别输入 Code: 8g h.go 8l h.8 8.ou...阅读全文
这么多监控组件,总有一款适合你
监控是分布式系统的必备组件,能够起到提前预警、问题排查、评估决策等功效,乃行走江湖、居家必备之良品。 监控系统概要 功能划分 一个宿主机cpu的报警叫做监控;一个业务日志的报错叫做监控;一个APM条件的触发,也叫做监控。分布式系统错综复杂,随便做个统计指标的集合,也属于监控的范畴。怎样做到通用化,理清其中的关系,是需要花点功夫的,否则揉成一团,就不好拆了。 我习惯性从以下两种类型对其进行划分,真正实施起来,系统还是按照数据象限分比较合理: 数据象限 从数据类型划分,大体可分为:日志(logs)、监控(metrics)、调用链(tracing)。 功能象限 从业务角度划分,可分为:基础监控、中间件监控、业务监控 不管什么样的监控系统,又涉及以下几个模块过程: ❏ 数据收集。如何在广度和效率上进...阅读全文
移动App测试一些崩溃原因及触发崩溃的场景
移动App测试与传统台式机测试相比有一定的复杂性。这些复杂性可以被分类为: 环境:大量的设备,各种移动OSs,适应频繁OSs变化。 设备:触摸式和非触摸式设备,有限的内存容量,电池耗电量。 网络:不同的网络和运营商,在不好或无网络的情况下的App行为,离线支持。 可用性:方向,触摸,多触摸,缩放,分页和导航的局限性,各种干扰,如来电,来电短信,闹钟,和低电量警报。 所有这些手机专有的复杂性需要新的针对移动App测试的测试用例设计方案。 最常见的移动App Bug 有针对性的参加本次调查的主要有移动App测试人员和开发人员。结合几个结果,最常见的移动App Bug在对调查结果进行统计分析后确定。 根据调查的结果,移动App崩溃是最常见的移...阅读全文
k8s与审计-- 将clickhouse增加为 heapster sink
前言 在k8s资源审计和计费这块,容器和虚机有很大区别。相对虚机来讲,容器不容易实现。资源指标收集可以采用heapster,也可以用prometheus。之前文章有介绍过,prometheus的存储的瓶颈和查询较大数据量,容易oom这两个问题。所以选择了heapster。此外,heapster不仅内部实现了很多aggregator和calculator,做了很多聚合层的工作。而采用prometheus,你需要在查询的时候做聚合。heapster支持诸多metrics输出,称为sink。目前支持的sink如下图: 而我比较倾向于clickhouse数据库,关于clickhouse,其实前面的文章介绍过很多了。所以本文主要讲如何为heapster增加clickhouse sink。 代码分析和实...阅读全文
互融云开发数字货币智能永续合约交易系统-虚拟币永续合约交易平台出售
互融云开发数字货币智能永续合约交易系统-虚拟币永续合约交易平台出售互融云作为数字资产交易系统开发商,用实际行动践行着安全创新可信赖的理念,前进的脚步不停歇。在合约产品上,凭借着底蕴经验加交易机制,互融云合约交易系统已经成为企业手中的亮点产品,永续合约交易系统便是其中之一:系统特点经过多轮测试,保证了K线的稳定性永续合约采用的是springboot提供微服务,合约账户进行了加密,确保资金安全通过专用的golang脚本稳定高效的抓取和修复k线数据通过多线程和算法以及并发锁来快速及时的计算并分析风险率并进行相应的处理,保证平台的利益合约下单采用redis,rabbitmq来保证下单并确保资金无误新安全体系MD5+RSA加密:采用MD5+RSA(非对称加密算法)保障账号密码安全身份认证:登录身份认证...阅读全文
动态变化的 json 解析 求指导
##### 有如下需求: ##### 1) 给应用系统分类,确定组成部份,并构建一个关系树(左树) ##### 如 一个应用系统 按功能来划分成 web,api,db,cache,mq等等组成, 应用系统作为一级根,web,api这些作为二级根,服务名称,主机名,cpu,mem,disk作为三级展示. 有些应用并非使用到 如 mq, 所以二极根是动态变化的. #####如下代码有些问题,求指导: 怎样获取整个json数据 ``` package main import ( "encoding/json" "fmt" ) type Systree struct { Sysname []Sys `"json:sysname"` } type...阅读全文
windows go开发环境(3) IDE
git的命令行git bash用起来虽然很方便,但是有时不够直观。 git同时提供了git GUI工具。 windows下也可以使用更强大的sourcetree工具(同时支持gir,hg,svn,便于多项目查看)。 不过我对装.net framework总是心有芥蒂。能不用就不用了。 还可以在sublime里面安装sublimegit插件。这样就可以直接在sublime里面完成git status, git commit,git diff,git push等操作。 sublime3自带 go.sublime,支持go的语法高亮和补全、 还需要添加sublime下的go编译系统,在sublime下选择【工具菜单】,选择【编译系统】,继续选择【新编译系统】,在弹出的文件内写入如下代码: { "c...阅读全文
关于 go 的数据库连接
我正用 Go 在写一个web系统练手,请问 Go 里面一个数据库连接是一开始就初始化一个放到公共区域系统运行结束关好还是用的时候再开,然后随用随关呢?为什么呢...阅读全文
时序数据库 InfluxDB(五)
相关文章:时序数据库 InfluxDB(一)时序数据库 InfluxDB(二)时序数据库 InfluxDB(三)时序数据库 InfluxDB(四)时序数据库 InfluxDB(五) 系统监控 InfluxDB 自带有一个监控系统,默认情况下此功能是开启的,每隔 10 秒中采集一次系统数据并把数据写入到 _internal 数据库中,其默认使用名称为 monitor 的 RP(数据保留 7 天),相关配置见配置文件中的: [monitor] store-enabled = true store-database = "_internal" store-interval = "10s" _internal 数据库与其它数据库的使用方式完全一致,其记录的统计数据分为多个 measurements ...阅读全文
容器监控实践—kube-state-metrics
概述 已经有了cadvisor、heapster、metric-server,几乎容器运行的所有指标都能拿到,但是下面这种情况却无能为力: 我调度了多少个replicas?现在可用的有几个? 多少个Pod是running/stopped/terminated状态? Pod重启了多少次? 我有多少job在运行中 而这些则是kube-state-metrics提供的内容,它基于client-go开发,轮询Kubernetes API,并将Kubernetes的结构化信息转换为metrics。 功能 kube-state-metrics提供的指标,按照阶段分为三种类别: 1.实验性质的:k8s api中alpha阶段的或者spec的字段。 2.稳定版本的:k8s中不向后兼容的主要版本的更新 3.被...阅读全文
“轻’”而不“薄”的轻量应用服务器初使用体验
摘要: 阿里云最近推出了更容易上手的“轻量”应用服务器,目前还在内测阶段。 轻量应用主打快速创建应用,快速上线,适合轻量应用快速发布。 轻量应用服务器面向入门级云计算及简单应用用户,产品提供基于单台云服务器的域名管理、应用部署、安全和运维管理的一站式综合服务。 阿里云最近推出了更容易上手的“轻量”应用服务器。 现已全新发布! 686_160 了解产品 Fin 轻量应用主打快速创建应用,快速上线,适合轻量应用快速发布。 轻量应用服务器面向入门级云计算及简单应用用户,产品提供基于单台云服务器的域名管理、应用部署、安全和运维管理的一站式综合服务。用户可以选择精品应用镜像,并可在控制台实现全方位的服务器、域名、防火墙、安全防控、监控等管理和操作。 轻核云服...阅读全文
互融云数字货币永续合约交易系统
永续合约 是一种衍生品。从交易的角度来说,它类似于传统的期货合约,但又有一些不同之处。首先它没有到期或结算日,永续掉期合约类似于一个保证金现货市场,因此它的交易价格接近于标的参考指数价格,这与期货合约不同,由于基差的原因,期货合约的交易价差可能存在显著的不同。其次锚定现货价格的主要机制是资金费用。互融云推出的永续合约交易系统支持双向交易,多杠杆,多风险控制,风险管控分为警戒线,禁止开仓线,强平线,降低用户风险率;并且平台引入了用户和平台对赌,以及代理商推荐返佣机制,推动了平台用户的发展。1)系统角色 2)交易流程 互融云数字货币永续合约交易系统介绍:1)合约模型设计交易方式:市价交易、限价交易合约周期:无定时交割时间,用户可自由选择交割时间隔夜费设置:用户购买每超过24小时则会收取隔夜费合约...阅读全文
蚂蚁金服轻量级监控分析系统 SOFALookout 服务端开源
SOFAStack ScalableOpenFinancialArchitecture Stack 是蚂蚁金服自主研发的金融级分布式架构,包含了构建金融级云原生架构所需的各个组件,是在金融场景里锤炼出来的最佳实践。 SOFALookout 是蚂蚁金服在 SOFAStack 体系内研发开源的一款解决系统的度量和监控问题的轻量级中间件服务。本文给大家介绍下 SOFALookout 服务器端主要提供的特性以及使用方式。 SOFALookout:https://github.com/sofastack/sofa-lookout 前言容器,K8S,微服务,Mesh 以及 Serverless 这些新技术方向正在根本的变革我们运行软件的方式。我们构建的系统更加分布式化,另外由于容器,系统的生命周期更加短...阅读全文
如何持续的监控远程mysql是否能够正常连接
按照官网教程,可以使用`db.ping()`来查看,可是当远程机器关闭之后,`db.ping()`没有返回错误, 请问有什么办法可以持续的监控一台机器的mysql连接 package main import ( "database/sql" "flag" "fmt" "log" _ "github.com/go-sql-driver/mysql" ) func main() { var ( server = flag.String("mysql", "192.168.2.200:3306", "mysql server") ...阅读全文
利用Prometheus 打造企业分布式监控平台(3)--远程读写之战
Prometheus远程读写存储是一个热门话题,已经存在了数个系统(Cortex,M3DB,InfluxDB),并且在过去的几个月中已经诞生了一些系统(Thanos,VictoriaMetrics)。每个系统都有自己的架构和不同的使用场景。 一句话:成也Prometheus,败也Prometheus。 Prometheus生态和体系太过优秀,导致抛开Prometheus,另起炉灶,重新创建一个轮子的难度非常之大。而正如第一篇文章所述,Prometheus本身tsdb的劣势,又给了诸多系统机会。 至于这场战争,谁会笑到最后,目前来看不得而知。 目前Prometheus已经支持以下第三方系统的对接: 不过良莠不齐,很多是一些实验性的适配器。当然如果你恰好运行在公有云上,而且能承受监控存储所带来的...阅读全文
2018最新微服务架构实战 从0到1完完全全学习主流微服务技术栈组件及架构(视频+源码+课件)
教程目录第一模块 :微服务安全架构与实践01 | 第一模块课程介绍02 | 微服务安全要解决什么问题03 | 白话 OAuth204 | OAuth2 的正式定义05 | OAuth2 有哪些典型模式06 | OAuth2 模式该如何选型07 | Spring Security OAuth2 架构简介08 |【实验】授权码模式授权服务器09 |【实验】简化模式授权服务器10 |【实验】密码模式授权服务器11 |【实验】客户端模式授权服务器12 | 实验一扩展环节13 |【实验】Web 应用接入授权服务器14 | 实验二扩展环节15 | 什么是 JWT 令牌16 |【实验】授权服务器支持 JWT 令牌17 | 实验三扩展环节18 |【实验】Android 无线应用接入授权服务器19 |【实验】...阅读全文
Stacer:Linux系统优化和监控系统。
https://github.com/oguzhaninan/Stace...阅读全文
互融云开发数字货币永续合约交易系统-搭建永续合约交易平台
互融云开发数字货币永续合约交易系统-搭建永续合约交易平台互融云从事虚拟货币智能永续合约APP开发,虚拟货币智能永续合约网站开发,从事虚拟货币智能永续合约产品定制,是专业的区块链数币永续合约交易系统软件开发公司。互融云作为国内领先的数字资产交易所系统开发商,用实际行动践行着安全创新可信赖的理念,前进的脚步从不停歇。在合约产品上,凭借着深厚的底蕴经验加完美的交易机制,互融云合约交易系统已经成为企业手中必不可少的亮点产品,永续合约交易系统便是其中之一:系统特点经过多轮测试,保证了K线的稳定性永续合约采用的是springboot提供微服务,合约账户进行了加密,确保资金安全通过专用的golang脚本稳定高效的抓取和修复k线数据通过多线程和特有算法以及专用并发锁来快速及时的计算并分析风险率并进行相应的处...阅读全文
基于DCGM和Prometheus的GPU监控方案
基于DCGM和Prometheus的GPU监控方案 背景: 在早期的GPU监控中我们会使用一些NVML工具来对GPU卡的基本信息进行采集,并持久化到监控系统的数据存储层。因为我们知道,其实通过nvidia-smi这样的命令也是可以获取到GPU的基本信息的,但随着整个AI市场的发展和成熟,对于GPU的监控也越来越需要一套标准化的工具体系,也就是本篇文章讲的关于DCGM相关的监控解决方案。 DCGM(Data Center GPU Manager)即数据中心GPU管理器,是一套用于在集群环境中管理和监视Tesla™GPU的工具。 它包括主动健康监控,全面诊断,系统警报以及包括电源和时钟管理在内的治理策略。 它可以由系统管理员独立使用,并且可以轻松地集成到NVIDIA合作伙伴的集群管理,资源调度和...阅读全文
搭建Prometheus Grafana Go监控平台
一、前言 监控指标 Go监控指标有好多库,监控指标大致一样。 1)https://github.com/bmhatfield/go-runtime-metrics 2)https://github.com/tevjef/go-runtime-metrics 3)Prometheus SDK 指标输出 1)golang expvar 2)Prometheus 二、Prometheus搭建 镜像设置 docker pull mirrorgooglecontainers/addon-resizer:1.8.3 docker tag mirrorgooglecontainers/addon-resizer:1.8.3 k8s.gcr.io/addon-resizer:1.8.3 docker pul...阅读全文
go1.6升级带来响应延迟的问题
Go1.6 放出来很久了,这里是 Release,比较注意一点 Map 不加锁在并发访问时会 Crash.先说问题:升级go1.6后,线上的GC时间显显变短,但是响应时间变大,不可接受。 这几个小时完全不能接受 线上响应 显显看到 小于1ms的请求大幅减少,1ms~10ms请求突增,如果每个请求1ms,整体QPS猛降到1000,完全不能接受。 升级后 系统日志看升级后延迟好大 升级前 对比升级前的响应,基本不到1ms不知道已入坑的同学,有无遇到这个问题。在官方的 Issues 也提到过,需要进一步的测试疑似内存泄漏问题20160315因为升级go1.6有一个map并发访问的问题,所以在 go install 的时间增加了 -race选项 The runtime has added light...阅读全文
Go 实现的 Memcachd的监控工具
Demo http://mc.codeb2cc.com/#/server 源代码:https://github.com/codeb2cc/gmcadmin 做的效果很好...阅读全文
高性能Vs性价比,总有一款适合你,阿里云NAS家族深度解析
摘要: 在今年召开的“2017杭州·云栖大会”上,阿里云文件存储(Network Attached Storage,简称NAS)再次释放技术红利,降价幅度达46%,再次成为云上存储的性价比标杆。阿里云NAS是具备无限容量及性能扩展、单一命名空间、多共享、高可靠和高可用等特性的分布式文件系统。不仅是性价比,阿里云NAS家族还提供了适合各个企业场景的产品,来满足用户需求。 在此,笔者就来为大家一一解析整个阿里云NAS家族。 阿里云NAS文件存储共有三种类型:性能型,容量型和NAS Plus。 1、通用型NAS – (性能型/容量型)类型 NAS性能型使用SSD作为存储介质,为应用工作负载提供高吞吐量与IOPS、低时延的存储性能。 NAS容量型使用SATA HDD作为存储介质,以更低的成...阅读全文
服务网格框架初探:Istio、Linkerd和SOFAmesh
导读2018年,Service Mesh在国内大热,有多家公司推出自己的Service Mesh产品和方案。本篇文章结合Service Mesh领域内关注度较高的几种开源方案,从架构层面出发,进行初步解读。服务网格(ServiceMesh)是什么?Willian Morgan——Bouyant CEO给出的 Service Mesh 定义:服务网格是一个用于处理服务间通信的基础设施层,它负责为构建复杂的云原生应用传递可靠的网络请求。在实践中,服务网格通常实现一组和应用程序部署在一起的轻量级的网络代理,但对应用程序来说是透明的。具体来说,Service Mesh 是服务的前置代理层的实现,采用 sidecar 设计模式,用来管理 inbound 和 outbound 流量,并且针对拦截的流量和...阅读全文
使用Prometheus和Grafana监控golang服务
环境 centOS 7.0Prometheus2.14.0Grafana6.5.2 下载安装Prometheus wget https://github.com/prometheus/prometheus/releases/download/v2.14.0/prometheus-2.14.0.linux-386.tar.gz tar -xavf prometheus-2.14.0.linux-386.tar.gz 启动 在解压目录里就有缺省的配置文件prometheus.yml。可以不用修改直接使用启动。 ./prometheus --config.file=prometheus.yml 在浏览器中输入主机IP:9090访问就能看到Prometheus界面 时序类型 <1>Counter:计...阅读全文
分步式文件存储系统技术及实现
课程介绍 本课程针对分步式文件存储系统的实现进行讲解,首先分析为什么要使用这种分步式存储系统,以及这种系统在设计时需要注意的问题,并比较现在市面常见的分步式存储系统(HDFS、Ceph等),展示阿里Pangu系统针对其中问题的解决方法,并结合Pangu系统说明分步式存储系统的设计要点。 讲师介绍 姚文辉,2009年加入阿里巴巴,从事阿里巴巴自主研发的云计算平台—飞天分布式操作系统中的分布式存储系统—盘古。 课程目标 • 学习分步式文件存储系统的实现 适合人群 • 云计算开发者 课时列表 • 课时1:分布式存储客观需求 • 课时2:小概率事件对分布式系统的挑战 • 课时3:常见分布式系统-终版 • 课时4:分布式设计要...阅读全文
使用 Elastic Stack 来监控和调优 Golang 应用程序
Golang 因为其语法简单,上手快且方便部署正被越来越多的开发者所青睐,一个 Golang 程序开发好了之后,势必要关心其运行情况,今天在这里就给大家介绍一下如果使用 Elastic Stack 来分析 Golang 程序的内存使用情况,方便对 Golang 程序做长期监控进而调优和诊断,甚至发现一些潜在的内存泄露等问题。 Elastic Stack 其实是一个集合,包含 Elasticsearch、Logstash 和 Beats 这几个开源软件,而 Beats 又包含 Filebeat、Packetbeat、Winlogbeat、Metricbeat 和新出的 Heartbeat,呵呵,有点多吧,恩,每个 beat 做的事情不一样,没关系,今天主要用到 Elasticsearch、Me...阅读全文
Go from 2020
GoLANG From 2020 因为头脑发热选择go语言?我想可能不是,在经过一系列的了解和调研后,我是认真的选择了golang, 当Rob Pike不满C++委员会要先添加35中新特性之后,毅然决然的在2009年搞出一个以c语言为原型的下,借鉴了其他的语言的一些特性的新的编程语言GO。大牛就是大牛,一言不合,我就自己造。[Less can be more 大道至简,小而蕴真 让事情变得复杂很容易,让事情变得简单才难这是Go语言的工程文化,太NB了。 其次,Go的诞生本身就自带光环,源自Google,自然保证其“血统纯正”,由三位大佬亲自操刀规划而出,后又加入了Russ Cox这个主力开发者。在这么多人的光环加持下,其一出生就备受瞩目。 Go语言擅长处理高并发、分布式开发的应用场景,同时伴...阅读全文
让运维更高效:关于ECS系统事件
**摘要**: 阿里云会针对ECS实例发布系统事件,当您收到阿里云计划维护的通知时,可以利用ECS系统计划事件了解与实例相关的计划维护操作,并根据您的业务特性选择合适的时间安排运维操作进行故障转移,减少对系统可靠性和业务连续性的影响。 阿里云作为领先和值得信赖的云计算服务提供商,提供和保障计算、存储、网络资源以及底层基础设施的可用性、稳定性、安全性。根据自身战略发展和业务需求,您可以设计高可用的云上IT架构,在阿里云上选择合适的产品、服务来搭建部署业务系统,并管理其中的数据。在此基础上,通过阿里云提供的API、监控、编排等多样化手段实现快速配置资源,搭建多套环境,自动化部署等IT运维能力。 相较于普通的IDC机房以及服务器厂商,阿里云会使用更严格的IDC标准、服务器准...阅读全文
go语句初探
go语句和通道类型是Go语言的并发编程理念的最终体现。相比之下,go语句在用法上要比通道简单很多。与defer语句相同,go语句也可以携带一条表达式语句。注意,go语句的执行会很快结束,并不会对当前流程的进行造成阻塞或明显的延迟。一个简单的示例如下: go fmt.Println("Go!") 可以看到,go语句仅由一个关键字go和一条表达式语句构成。同样的,go语句的执行与其携带的表达式语句的执行在时间上没有必然联系。这里能够确定的仅仅是后者会在前者完成之后发生。在go语句被执行时,其携带的函数(也被称为go函数)以及要传给它的若干参数(如果有的话)会被封装成一个实体(即Goroutine),并被放入到相应的待运行队列中。Go语言的运行时系统会适时的从队列中取出待运行的Goroutine并...阅读全文
Golang 并发问题(四)之单核上的并发问题
写在前面 Golang 在单核上的“并发”问题 gotour上的乌龙案例 单个物理核心上的“并发” runtime.GOMAXPROCS(1) 方法 小结 参考 写在前面 过去 Web 开发的工作比较少涉及到并发的问题,每个用户请求在独立的线程里面进行,偶尔涉及到异步任务但是线程间数据同步模型非常简单,因此并未深入探究过并发这一块。最近在写游戏相关的服务端代码时发现数据的并发同步场景非常多,因此花了一点时间来探索和总结。这是一个系列文章,本文为第四篇。 本文简单介绍 Golang 中配置可用 CPU 核的方法及其可能导致的误解。 Golang 在单核上的“并发”问题 gotour上的乌龙案例 在上一篇博客中介绍了 Golang 并发编程中 map 类型的“脆弱”性。具体地,Golang 的运...阅读全文