服务器命名方案
服务器的命名也是很考究的,看了一篇文章,把其重要的部分摘录下来.
为了便于管理,尽量为服务器绑定一个易于查找和理解的域名.标准的域名结构可以通过如下的一种或多种组合方式.
按地理位置:
遵循UN/LOCODE编码规则
如上海:
sgh.example.com
而国人可以选择使用字母缩写(部分地区会有冲突,所以建议使用UN/LOCODE编码规则)
sh.example.com
服务器的命名也是很考究的,看了一篇文章,把其重要的部分摘录下来.
为了便于管理,尽量为服务器绑定一个易于查找和理解的域名.标准的域名结构可以通过如下的一种或多种组合方式.
按地理位置:
遵循UN/LOCODE编码规则
如上海:
sgh.example.com
而国人可以选择使用字母缩写(部分地区会有冲突,所以建议使用UN/LOCODE编码规则)
sh.example.com
javascript确实是一门在设计和使用上与主流语言上有着很多区别的语言,但一点也不妨碍她成为一门优雅的语言.
但是习惯了顺序执行的coder(指我自己)使用javascript的异步操作容易产生金字塔回调的问题(无止尽的回调套回调).最常见的就是按顺序异步操作.
ajax(url1, function(){
ajax(url2, function(){
...
});
});
之前遇到这个问题时,我想到了小时候玩的多米诺骨牌,确保前一个倒下能推到自己,自己倒下以后能推到后面一个.(以jQuery的自定义事件方式实现).
生产环境发现一个请求报了超时.查询应用日志在收到请求后1秒内就做出了响应;查看nginx访问日志发现那笔请求状态为499,经查是因为请求端等待超时主动掐断连接.由于之前nginx只记录了默认的访问日志格式,所以无法排查究竟是是否为上游超时.为了找到问题原因遂需要记录一下上游的响应时间:
配置如下:
1.定义新的日志格式(在默认格式之后加上请求/响应时间,管道)
log_format access '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" '
'$request_time $upstream_response_time $pipe';
2.重新配置日志格式
access_log logs/access.log access;
等待问题重现后即可排查
前两天面tx都有问到这个问题,我知道大致能通过find和grep实现,但是具体没写过.刚刚无事翻了下命令手册,发现find的一个动作:
下午用sql的时候突然想到这个问题,徒手测试了一下,结果还真令人意外:
首先创建一张测试用表
mysql> CREATE TABLE `t1` (
-> `id` int UNSIGNED NOT NULL AUTO_INCREMENT ,
-> `val` int UNSIGNED NOT NULL DEFAULT 0 ,
-> PRIMARY KEY (`id`)
-> );
Query OK, 0 rows affected (0.04 sec)