翔云

Just try, don't shy. 最新文章请点击
随笔 - 294, 文章 - 0, 评论 - 27, 阅读 - 49万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  Golang

摘要:Orchestrator是基于Raft的分布式集群。 现在原有三节点集群基础上,新扩容两个节点。 所有节点更新配置文件,并重启后,新的节点无法加入集群。 新节点报错信息; 2020/09/04 15:22:53 [WARN] raft: Heartbeat timeout from "" reach 阅读全文

posted @ 2020-09-06 15:57 翔云123456 阅读(225) 评论(0) 推荐(0) 编辑

摘要:golang中的标准库database/sql 包为SQL和类SQL数据库的操作提供了通用的接口。 database/sql 包 必须与数据库driver 配套使用。 目前已有的SQL database drivers 见链接。 这里面就包括比较常用的MySQL driver go-sql-driv 阅读全文

posted @ 2020-09-05 22:58 翔云123456 阅读(552) 评论(0) 推荐(0) 编辑

摘要:动态加载配置,是服务中常用的功能。 动态加载配置是指不重启服务情况下,使配置文件的改动或者其他方式的改动生效。 一般普遍使用的方式是,加锁方式。 其步骤大体过程如下: 从配置文件中读取配置到新的配置变量 加锁 将新的配置变量赋值给已有的配置变量 解锁 使用新的配置 接下里,介绍一种方式,即无锁加载配 阅读全文

posted @ 2020-07-26 12:37 翔云123456 阅读(188) 评论(0) 推荐(0) 编辑

摘要:问题 使用go tool trace时,会打开浏览器显示相关页面,但有很多链接无法打开,显示空白页。 页面中的报错: Uncaught ReferenceError: tr is not defined at trace_viewer_html.js:595 Uncaught ReferenceEr 阅读全文

posted @ 2020-07-12 16:38 翔云123456 阅读(593) 评论(0) 推荐(0) 编辑

摘要:如何在本地轻松查看go document? 如何解决godoc无法找到的问题: GolangDoc: Could not find godoc, (hint: is godoc installed?) 本文将介绍如何使用godoc查看go语言文档。 安装godoc go get -v golang. 阅读全文

posted @ 2020-07-11 16:46 翔云123456 阅读(665) 评论(0) 推荐(0) 编辑

摘要:最近在使用orchestrator的过程中,遭遇了严重的问题。 最初上线的几个月里,raft leader非常稳定。 但随着时间的推移,raft leader 频繁变化的问题就爆发了。 leader的变化,直接原因,就是leader没有按时发送heartbeat,从而触发了选举机制。 第一个怀疑的原 阅读全文

posted @ 2020-07-04 23:26 翔云123456 阅读(219) 评论(0) 推荐(0) 编辑

摘要:查看 正在执行的goroutine分两步: 1.程序中引入pprof pakage 在程序中引入pprof package: import _ "net/http/pprof" 程序中开启HTTP监听服务: package main import ( _ "net/http/pprof" "net/ 阅读全文

posted @ 2020-06-27 16:43 翔云123456 阅读(2071) 评论(0) 推荐(0) 编辑

摘要:pprof和trace 是golang程序性能分析中经常用到的两个工具。 本文简单介绍其使用方法。 1.程序中引入pprof package 对于长期运行的的后台程序来说,使用package net/http/pprof 是比较便捷的选择。 使用方法非常简单,只要import package的地方加 阅读全文

posted @ 2020-06-27 16:33 翔云123456 阅读(421) 评论(0) 推荐(0) 编辑

摘要:1.问题 在使用go-sql-driver/mysql连接MySQL 服务过程,隔一段时间,会报MySQL连接错误: [mysql] 2020/05/09 02:02:01 packets.go:36: unexpected EOF 2020-05-09 02:02:01 ERROR gorouti 阅读全文

posted @ 2020-05-24 15:41 翔云123456 阅读(6032) 评论(0) 推荐(0) 编辑

摘要:本篇文章与 "制作docker映像(二) golang应用程序" 的不同之处在于,不会拷贝程序源代码到容器中,而是通过挂载数据卷的方式,使容器与容器共享文件。 1. Dockerfile 首先新建项目目录,目录中的文件如下: 来看下,Dockerfile的内容: 可以看到,没有将源码文件拷贝到容器的 阅读全文

posted @ 2020-02-16 22:18 翔云123456 阅读(158) 评论(0) 推荐(0) 编辑

摘要:本文以简单golang应用为例,介绍docker映像制作。 1.创建Dockerfile 工程目录结构如下: Dockerfile文件内容如下: 使用golang编写程序hello.go,编译并在容器中执行。 指定基础映像, . `mkdir` 在映像中创建路径。 指定工作目录。 将`hello.g 阅读全文

posted @ 2020-02-15 21:05 翔云123456 阅读(219) 评论(0) 推荐(0) 编辑

摘要:使用go语言开发过程中, 很多情况,需要了解goroutine的执行情况,尤其在大量并发场景中,需要根据日志跟踪任务的执行情况,这个时候可以大致根据goroutine id来跟踪程序执行的状态。 在go语言中,没有获取goroutine id(简称goid)的API。 为什么没有提供呢? 原因如下: 阅读全文

posted @ 2019-12-28 23:22 翔云123456 阅读(671) 评论(0) 推荐(0) 编辑

摘要:go语言中如果一个变量的值为nil,是否能否为json? 如果能否转换,转换后的结果是什么? 下面直接看下例子。 output: 结果输出为"null"。 也就是说,凡是值为nil的变量,经过json编码后都是"null"。例如,未赋值的指针变量、切片slice等: 反过来,如果一个json字符串是 阅读全文

posted @ 2019-12-28 22:12 翔云123456 阅读(617) 评论(0) 推荐(0) 编辑

摘要:go语言中,从1.11开始,引入module,进行版本管理。 通过使用module,工程目录的位置不用必须放在GOPATH下。 本文介绍 module的使用。 下文中用的Go版本是1.13。 1. go mod命令 通过go mod可以进行modules的相关操作。 首先看下 go mod命令: 2 阅读全文

posted @ 2019-12-22 17:57 翔云123456 阅读(602) 评论(0) 推荐(0) 编辑

摘要:从Go 1.11开始引入module,用于版本管理。 通过使用module,工程目录的位置不用必须放在GOPATH下。 当前版本是1.13,下文中将以Go1.13为例介绍module。 在Go 1.13中,继续使用临时环境变量GO111MODULE来设置是否使用module。 1.关于GO111MO 阅读全文

posted @ 2019-12-21 22:23 翔云123456 阅读(428) 评论(0) 推荐(0) 编辑

摘要:测试是功能上线之前的重要环节。 测试过程中,要尽量覆盖各种场景。故障情况或异常情况下的场景测试,也是必不可少的。 如何模拟故障呢? 在FreeBSD 中, "failpoints" 经常用来模拟故障。 在golang,也有failpoint的实现,就是目前pingcap 公司的开源项目 . 下面介绍 阅读全文

posted @ 2019-11-15 20:10 翔云123456 阅读(801) 评论(0) 推荐(0) 编辑

摘要:本文测试连接mysql的超时时间。 这里的“连接”是建立连接的意思。 连接mysql的超时时间是通过参数timeout设置的。 1.建立连接超时测试 下面例子中,设置连接超时时间为5s,读超时时间6s。 MySQL server IP是192.168.0.101,端口3306。 每3s执行一次SQL 阅读全文

posted @ 2019-10-27 21:48 翔云123456 阅读(8112) 评论(0) 推荐(1) 编辑

摘要:golang中,有一个特殊的指针值nil. 如何使用nil没有方法和成员变量呢? 下面来看下具体例子。 程序中,定义结构体类型Plane, 将Plane类型的指针作为函数的参数,然后传入nil作为实参。 在函数中,使用nil访问Plane的方法。 package main import ( "fmt 阅读全文

posted @ 2019-10-17 22:49 翔云123456 阅读(1705) 评论(0) 推荐(0) 编辑

摘要:在用MySQL客户端对数据库进行操作时,如果一段时间没有操作,再次操作时,常常会报如下错误: 这个报错信息就意味着当前的连接已经断开,需要重新建立连接。 那么,连接建立后,连接的时长是如何确定的呢? 在MySQL中,这个与两个参数 和`wait_timeout`的设置有关。 注:以下说明基于MySQ 阅读全文

posted @ 2019-10-13 17:38 翔云123456 阅读(1884) 评论(0) 推荐(0) 编辑

摘要:MySQL 客户端与MySQL server建立连接后,就可以执行SQL语句了。 如何查看一个连接上是否正在执行SQL语句,或者连接是否处于空闲呢? 下面我们做下测试。 1.查看连接的空闲时间 首先看下测试程序。 代码中,每3s执行一条sql语句。 启动程序,输出结果如下: 可以看到,连接MySQL 阅读全文

posted @ 2019-10-13 13:03 翔云123456 阅读(1534) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示