会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
夏笑声
博客园
首页
新随笔
联系
订阅
管理
2023年4月20日
Go长连接后台平滑重启
摘要: 目标:tcp长连接的后台服务,重启时,会断开所有客户端的连接。影响范围很大,现想实现重启时,已建立的连接不断开,继续提供服务,直到客户端主动断开连接。而新建立的连接使用更新后的服务。 原理: 1. 更新可执行文件后 2. 向进程发送SIGUSR1信号 3. 进程收到SIGUSR1信号后,停止Acce
阅读全文
posted @ 2023-04-20 11:26 xiaxiaosheng
阅读(219)
评论(0)
推荐(0)
2021年12月9日
记一次服务端系统性能优化
摘要: 首先简单介绍一下业务场景,物联网设备,关注公众号,免费领取环保袋。 12月8号,也就是昨天上午,突然接到大量客户投诉反馈下单界面点击下单一直在“转圈”,最后超时。紧急排查! 第一步查看网络,服务器ping值正常,然后查询服务器带宽占用率正常。 第二步,查看应用服务器负载,很低,基本没问题。 第三步,
阅读全文
posted @ 2021-12-09 11:49 xiaxiaosheng
阅读(943)
评论(0)
推荐(2)
2020年7月29日
goroutine调度源码阅读笔记
摘要: 以下为本人阅读goroutine调度源码随手记的笔记,现在还是一个个知识点的形式,暂时还没整理,先发到这里,一点点更新: 1). runq [256]guintptr P 的runable队列最大只能保存256个G 2). 全局的可执行队列由schedt持有,runq gQueue 3). goro
阅读全文
posted @ 2020-07-29 18:49 xiaxiaosheng
阅读(411)
评论(0)
推荐(0)
2020年4月23日
Golang GC 算法
摘要: 虽然Golang的GC自打一开始,就被人所诟病,但是经过这么多年的发展,Golang的GC已经改善了非常多,变得非常优秀了。 以下是Golang GC算法的里程碑: v1.1 STW v1.3 Mark STW, Sweep 并行 v1.5 三色标记法 v1.8 hybrid write barri
阅读全文
posted @ 2020-04-23 10:47 xiaxiaosheng
阅读(381)
评论(0)
推荐(0)
2019年12月21日
git常用操作合集
摘要: 基本操作git status 查看文件处于什么状态 git status -s 带上-s参数,可以以更紧凑的格式输出文件状态信息 git add 开始追踪该文件或者暂存已修改的文件。 .gitignore 文件,忽略一些不希望跟踪的文件 git diff 查看已暂存和未暂存的文件的差异,未暂存的也就
阅读全文
posted @ 2019-12-21 23:30 xiaxiaosheng
阅读(220)
评论(0)
推荐(0)
2019年11月30日
utf8和utf8mb4的区别
摘要: 一、简介 MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。好在utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。当然,为了节省空间,一般情况下使用utf8也就够了。 二、内容描述 既
阅读全文
posted @ 2019-11-30 15:53 xiaxiaosheng
阅读(5111)
评论(0)
推荐(0)
2019年10月8日
正则表达式忽略分组顺序匹配(前瞻、后顾、负前瞻、负后顾的应用)
摘要: 前瞻: ^ab(?=cd)$ 匹配后面带有cd的ab,如果提取出来只有ab 例: abcd-匹配 abef-不匹配 后顾: ^(?<=ab)cd$ 匹配前面带有ab的cd,如果提取出来只有cd 例: abcd-匹配 efcd-不匹配 负前瞻: ^ab(?!cd)$ 匹配后面不带cd的ab 例: ab
阅读全文
posted @ 2019-10-08 18:27 xiaxiaosheng
阅读(1832)
评论(0)
推荐(0)
2019年7月15日
goroutine上下文切换机制
摘要: goroutine是go语言的协程,go语言在语言和编译器层面提供对协程的支持。goroutine跟线程一个很大区别就是线程是操作系统的对象,而goroutine是应用层实现的线程。goroutine实际上是运行在线程池上的,由go的runtime实现调度,goroutine调度时,由于不需要像线程
阅读全文
posted @ 2019-07-15 18:57 xiaxiaosheng
阅读(2691)
评论(0)
推荐(1)
2019年7月10日
golang的make
摘要: golang 分配内存主要有内置函数new和make,今天我们来探究一下make有哪些玩法。 map只能为slice, map, channel分配内存,并返回一个初始化的值。首先来看下make有以下三种不同的用法: 1. make(map[string]string) 2. make([]int,
阅读全文
posted @ 2019-07-10 23:33 xiaxiaosheng
阅读(50632)
评论(1)
推荐(7)
2019年5月28日
centos6.5安装supervisor
摘要: centos6.5安装supervisor,有很多种方法,但是有很多坑,为了以后不重复踩坑,这里记录一下。 一、如果用yum install supervisor, 默认安装的是2.1.9版本,2.x版本的问题很多,可以启动supervisord进程,但是使用supervisorctl命令会报这个错
阅读全文
posted @ 2019-05-28 15:33 xiaxiaosheng
阅读(2685)
评论(1)
推荐(1)
下一页
公告