翔云

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

随笔分类 -  Golang

摘要:本文介绍golang 中连接MySQL时,如何设置最大连接数和最大空闲连接数。 关于最大连接数和最大空闲连接数,是定义在golang标准库中 的。 文中例子连接MySQL用的SQL driver package是 . 设置最大连接数的接口是 设置连接MySQL可以打开的最大连接数。 如果n show 阅读全文

posted @ 2019-10-02 23:28 翔云123456 阅读(2431) 评论(0) 推荐(1) 编辑

摘要:作为一个golang coder,使用golang编写代码是基本的要求。 能够写出代码,并能够熟悉程序执行过程中各方面的性能指标,则是更上一层楼。 如果在程序出现性能问题的时候,可以快速定位和解决问题,那么写起代码来,会更加自信。 本文介绍的pprof,是golang 自带性能剖析工具,可以帮助定位 阅读全文

posted @ 2019-09-21 16:26 翔云123456 阅读(1793) 评论(0) 推荐(0) 编辑

摘要:golang channel关闭后,其中剩余的数据,是可以继续读取的。 请看下面的测试例子。 创建一个带有缓冲的channel,向channel中发送数据,然后关闭channel,最后,从channel中读取数据,输出结果。 package main import ( "fmt" ) func ma 阅读全文

posted @ 2019-08-03 21:17 翔云123456 阅读(2829) 评论(0) 推荐(0) 编辑

摘要:在golang中,配置文件经常使用json格式。json格式的语法,有些繁琐,尤其是出现嵌套的时候,每一块都需要大括号包裹,看起来很臃肿。 本着简单易用的原则,个人开发了一个配置解析模块 ,已在 "github开源" 。 下面介绍配置解析模块 的语法和使用方法。 基本语法 基本字符定义如下: 使用t 阅读全文

posted @ 2019-07-21 16:15 翔云123456 阅读(752) 评论(0) 推荐(0) 编辑

摘要:不是所有的反射值都可以修改。对于一个反射值是否可以修改,可以通过 进行检查。 要修改值,必须满足: 可以寻址 可寻址的类型: 指针指向的具体元素 slice的元素 可寻址的结构体的字段(指向结构体的指针) 可寻址的数组的元素(指向数组的指针) 不是结构体没有导出的字段 1.指针指向的具体元素 需要两 阅读全文

posted @ 2019-07-09 21:02 翔云123456 阅读(406) 评论(0) 推荐(0) 编辑

摘要:"反射结构体"是指在程序执行时,遍历结构体中的字段以及方法。 1.反射结构体 下面使用一个简单的例子说明如何反射结构体。 定义一个结构体,包括3个字段,以及一个方法。 通过reflect包,首先查看这个结构体对应的动态类型 和动态值 ,并查看这个结构体对应的基本类型。 接着查看结构体的字段数量,并遍 阅读全文

posted @ 2019-07-06 18:36 翔云123456 阅读(3820) 评论(0) 推荐(0) 编辑

摘要:golang中的多态,主要由接口interface体现。 接口interface在实现上,包括两部分:动态类型和动态值。 golang提供的reflect包可以用来查看这两部分。 返回i的动态类型。 返回i存放的动态值。 下面举例说明。 输出结果: 其中 定义如下, 用interface{}的方式返 阅读全文

posted @ 2019-07-03 21:04 翔云123456 阅读(461) 评论(0) 推荐(0) 编辑

摘要:defer以下几个特性,使用时需要关注下。 即时的参数传递 调用 时defer不会被执行 defer与return的先后顺序 1.即时的参数传递 定义defer时传入的参数,是作为拷贝传递的。 也就是说,如果原来的变量值发生变化,不会影响传给defer的参数。 例子如下: 输出结果: 可以看到,即使 阅读全文

posted @ 2019-06-23 20:50 翔云123456 阅读(810) 评论(0) 推荐(0) 编辑

摘要:对于golang的defer,我们已经知道,defer定义的语句可以延后到函数返回时执行。 经常用在文件的关闭,锁的释放等场景中。而且defer定义的语句即使遇到panic也会执行。这样,可以执行必要的清理工作,甚至使用 捕获异常。 以前使用defer经常这样用: 或者 本文介绍defer使用函数返 阅读全文

posted @ 2019-06-18 19:29 翔云123456 阅读(285) 评论(0) 推荐(0) 编辑

摘要:"前文" 中已经介绍了TCP keep alive的做了详尽说明,本文结合golang,介绍如何使用TCP keep alive。 目前golang net包不提供TCP keep alive 、 直接设置。 可以使用第三方包。 1.下载第三方包 注意放到 目录下。 2.例子 2.1 server 阅读全文

posted @ 2019-05-26 22:40 翔云123456 阅读(3313) 评论(0) 推荐(0) 编辑

摘要:"上篇文章" 中,我们已经学习了使用context实现控制多个goroutine的退出。 本文将继续介绍如何使用context实现超时情况下,让多个goroutine退出。 例子 首先,启动3个goroutine,分别为1,2,3。这3个goroutine又分别启动一个goroutine。 一共有6 阅读全文

posted @ 2019-05-19 18:45 翔云123456 阅读(160) 评论(0) 推荐(0) 编辑

摘要:golang RPC通信中,有时候就怕读写hang住。 那是否可以设置读写超时呢? 1.方案一: 设置连接的读写超时 1.1 client RPC通信基于底层网络通信,可以通过设置 的读写超时时间,达到RPC读写超时的目的。更多细节可参考 "golang网络通信超时设置" . 下面以client端的 阅读全文

posted @ 2019-05-12 21:53 翔云123456 阅读(2661) 评论(0) 推荐(0) 编辑

摘要:网络通信中,为了防止长时间无响应的情况,经常会用到网络连接超时、读写超时的设置。 本文结合例子简介golang的连接超时和读写超时设置。 1.超时设置 1.1 连接超时 第三个参数 可以用来设置连接超时设置。 如果超过 的指定的时间,连接没有完成,会返回超时错误。 1.2 读写超时 在 定义中,包括 阅读全文

posted @ 2019-05-12 16:49 翔云123456 阅读(9508) 评论(0) 推荐(0) 编辑

摘要:gRPC使用protocol buffers作为Interface Definition Language (IDL)。 gRPC的底层信息交互格式也使用的是protocol buffers。 默认情况下,gRPC使用protocol buffers进行序列结构化数据。 protocol buffe 阅读全文

posted @ 2019-05-04 23:05 翔云123456 阅读(512) 评论(0) 推荐(0) 编辑

摘要:本文使用两种方式测试HTTP 客户端读数据超时的情况,一种是直接使用golang自带的http库,另一种是使用martini web框架。 1. 测试1 直接使用http库 1.1.启动server server端的请求响应函数,会睡眠10s,再返回结果。这样,可以模拟server端处理慢的情况。 阅读全文

posted @ 2019-04-13 21:37 翔云123456 阅读(1133) 评论(0) 推荐(0) 编辑

摘要:本文介绍3种TCP连接异常的情况。 1.server端没有启动,client尝试连接 通过tcpdump抓包,可以看到当server没有启动的时候,client向server8080端口发送数据后,client端会收到RST。 2.client端读数据,突然异常退出或直接close连接 2.1 准备 阅读全文

posted @ 2019-04-13 21:13 翔云123456 阅读(4682) 评论(0) 推荐(1) 编辑

摘要:tcpdump是抓包常用的工具,可以直接从数据链路层抓取网络数据进行分析。tcpdmp提供了很多命令行参数,提供定制的数据捕获功能。 下面首先会介绍其命令行参数,接着以一个使用场景为例说明使用方法。 1.tcpdump使用说明 1.1 命令行参数 i interface 网络接口,例如lo0, en 阅读全文

posted @ 2019-04-13 19:32 翔云123456 阅读(794) 评论(0) 推荐(0) 编辑

摘要:orchestrator 提供了"forget cluster"HTTP接口用于下线集群。该接口可以根据提供的参数,推测可能的集群名cluster name,然后使用cluster name下线集群。其中cluster name在orchestrator的格式是集群主库的hostname和port的 阅读全文

posted @ 2019-03-30 22:02 翔云123456 阅读(310) 评论(0) 推荐(0) 编辑

摘要:orchestrator是一款MySQL高可用工具,其支持: 集群拓扑探测 集群拓扑重塑 故障恢复 提供3种使用方式: 命令行 HTTP API web页面 "orchestator github地址" 阅读全文

posted @ 2019-03-30 21:14 翔云123456 阅读(289) 评论(0) 推荐(0) 编辑

摘要:应用程序可以通过 UNIX domain sockets, UDP or TCP,向syslog守护进程发送日志。syslog守护进程可以在远端。 这样,就可以不用单独收集应用程序的日志了。 golang提供了syslog 包,只需要调用 ,就可以连接syslog服务器,然后发送消息。 在写失败的情 阅读全文

posted @ 2019-02-16 21:16 翔云123456 阅读(3645) 评论(2) 推荐(0) 编辑

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