首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Mooooon
掘友等级
Ruby/Go
关注
私信
获得徽章 0
动态
文章
专栏
沸点
收藏集
0
关注
赞
73
文章 72
沸点 1
资讯 0
赞
73
关注
返回
|
搜索文章
文章
热门
最新
Mooooon
5年前
Go
Time Wheel-高效定时器
之前的文章中有提到过基于最小堆构建定时器的方式,这里介绍另一种更酷的实现–Time Wheel(时间轮) 解释一下上图,环里是一个个的时间间隔,链表中是到达这个时间点后需要触发的定时事件。 举个例子,假设环中的一格代表1s。 如果我有一个需要延迟3s执行的任务,当前TimeWh…
1156
点赞
评论
Mooooon
5年前
awk like a boss!
linux提供了很多文本处理的屠龙刀,awk就是其中的佼佼者,称为一门面向文本的编程语言也不为过(awk中可以定义变量、进行运算,处理分支条件等等)。 完整的awd命令,可以由BEGIN…
119
1
评论
Mooooon
5年前
Go
golang热更新的魔法
当我们写一个服务端程序的时候,在更新时可能不可避免的需要停止程序再重启,这里介绍一种非常酷的热更新实现,真正做到zero downtime。 更换硬盘上的可执行程序 以相同的参数启动一个子进程,并把正在listen的fd传递给子进程 子进程通过这个fd进行listen,这样父子…
2437
1
评论
Mooooon
5年前
后端
GitHub
goim中的数据结构
goim中数据结构的设计非常出彩,值得仔细品味。 在长连接这样的场景下,有N条连接需要维护心跳信息,凡人的做法可能就是开启N个gorutine,但goim使用最小堆高效处理了这个问题。 Timer就是定时器的结构,对外提供Add、Del、Set三个方法用于添加,删除、修改Tim…
736
2
评论
Mooooon
5年前
Go
Linux
linux服务管理-upstart
当我们写完一个go程序时,部署只需要把二进制包拷贝到服务器上即可。 但在真正的生产环境中,如果程序出于某种原因崩溃了,我们会面临两个问题 如何得知程序崩溃,如果靠人工的方式,无疑是有巨大时间滞后的 如何方便的在崩溃后重启 在Ruby的世界中,例如unicorn这样的应用服务器,…
996
点赞
评论
Mooooon
5年前
Kibana
Elasticsearch
Logstash
请求优化-百倍性能提升
我们的整个web服务是基于Rails的,应用服务器是基于多进程模型的unicorn,因此,慢请求会对系统造成比较大的影响。 最近又到了春节促销活动时期,为了更及时地发现整个后端系统的问题,我基于Kibana的Visulize功能制作了一个慢请求监控图 通过这个统计图,可以很方便…
242
点赞
评论
Mooooon
5年前
Go
TCP/IP
golang tcp拆包的正确姿势
最近在造一个叫im-go的服务,看名字也能猜出来,是一个基于Go的IM服务,因为不想引入任何的依赖库,所以是手写每个模块的。 之前看过Netty,于是也想做一个类似Netty Codec的,用于编码解码的模块, 方便地处理TCP粘包这种细节问题。 在网上做了一番搜索之后,发现排…
3416
1
1
Mooooon
5年前
Docker
Ruby
程序员
使用Docker构建你的第一个服务
1.感受一下Docker的便捷项目源码https://github.com/MoonShining/dockernize-grape-helloworldclone下来以后运行,cd到项目目录下,运行
261
点赞
评论
Mooooon
5年前
服务器
数据库
Rails
一次完整的HTTP请求
这里讲的请求是后端DevOps可以控制的范围内,不包括DNS解析,层层的路由等等,一切都从请求到达我们自己架设的服务器开始。1.与服务器建立连接1.1TCP连接的建立客户端的请求到达服务器,首先就是建
717
点赞
评论
Mooooon
5年前
MySQL
SQL
数据库
MySQL查询优化
2017.12.11更新TheSecretLifeofSQL:HowtoOptimizeDatabasePerformancebyBryanaKnight查询性能低下的原因是访问了太多的数据多表连接时
655
1
评论
下一页
个人成就
文章被点赞
70
文章被阅读
17,854
掘力值
396
关注了
1
关注者
17
收藏集
0
关注标签
20
加入于
2016-09-07
温馨提示
当前操作失败,如有疑问,可点击申诉