Are you over 18 and want to see adult content?
More Annotations
A complete backup of bookmark4you.win
Are you over 18 and want to see adult content?
A complete backup of intensiveintervention.org
Are you over 18 and want to see adult content?
A complete backup of monkeybusiness.agency
Are you over 18 and want to see adult content?
A complete backup of pharosproject.net
Are you over 18 and want to see adult content?
A complete backup of mydallaspost.com
Are you over 18 and want to see adult content?
Favourite Annotations
zoochic-eu.ru - лидер №1 по продаже товаров для домашних животных в Европе.
Are you over 18 and want to see adult content?
TheBestSchools.org: Finding the best school for you
Are you over 18 and want to see adult content?
Kilimanjaro and Safari Tours | Nature Discovery Tanzania
Are you over 18 and want to see adult content?
1000steine.de ® :: Die Seite über LEGO ®
Are you over 18 and want to see adult content?
Sport și Actualitate. FANATIK.RO – știri generale și exclusivități din sport
Are you over 18 and want to see adult content?
Preguntas y respuestas frecuentes | LosPorques.com LPQ
Are you over 18 and want to see adult content?
Text
火丁笔记
虽说微服务早已是一个老生常谈的话题了,在 infoq或者 thoughtworks
上可以找到很多案例,不过可惜的是其中相当比例的案例是失败的案例,究其原因,除了技术门槛之外,主要是因为很多人脱离了实际情况,只是为了微服务而微服务。 本文通过一个例子带领大家从头到尾体验一下微服务的演化过程 老王 | 火丁笔记 由 老王. 2. 话说前几天我刚通过 mlcache 优化了热数据的问题,屁股还没坐热乎呢,就发现系统性能又下降了,本着自己挖的坑含泪也要填上的原则,我再一次开始了性能调优之旅。. 对某个 nginx 进程执行 perf top. 毫无疑问,从 perf top 结果来看,lj_str_new 已经成为浅谈CLOSE_WAIT
tcp
有很多连接状态,每一个都够聊十块钱儿的,比如我们以前讨论过 time_wait 和 fin_wait1,最近时不时听人提起 close_wait,感觉有必要梳理一下。. 所谓 close_wait,借用某位大牛的话来说应该倒过来叫做 wait_close,也就是说「等待关闭」,如果你还不理解其含义,可以看看tcp 关闭连
火丁笔记
我上一次遇到MySQL主从服务器数据一致性问题,想想是几年前的事情了,还依稀记得当时惊慌失措的情景,好在最后借助Maatkit解决了问题。 几年后,当我再次面对同样的问题时,Maatkit已经不复存在,转而成为了Percona Toolkit的一部分,不变的是我依旧手忙脚乱,所以还是记录一下吧,保不准啥时候又火丁笔记
发表于2018-06-23. 由 老王. 4. Twemproxy 可以说是最古老的Redis
代理软件了,一般来说,引入代理后性能会比没有引入代理时低一些,毕竟代理会导致一些额外的性能损耗,可是 Twemproxy 却会提升性能, 这主要得益于它的 Pipelining 功能可以实现打包请求,简单点说火丁笔记
运营反馈 Nginx 报 400 错误,具体点说:Request Header Or Cookie Too Large。其实随便搜搜就知道可以通过加大 client_header_buffer_size 和 large_client_header_buffers 来解决问题,不过这里面有一些细节值得讨论,正所谓:知其然,知其所以然。继续阅读 →
4月 | 2012 | 火丁笔记 但凡是一个合格的PHP程序员,就应该知道Unserialize与Autoload,但是要说起二者之间的关系,恐怕一清二楚的人就不多了。.继续阅读 →
在GOLANG的HTTP请求中共享数据 在Golang的HTTP请求中共享数据. 首先,我们需要先明确一下问题的描述:本文所要讨论的共享数据可不是指的cookie、session
之类的概念,它们描述的是在「请求间」共享数据,而我们关注的是在「请求中」共享数据,也就说是,在每个请求中的各个middleware 和
10月 | 2010 | 火丁笔记 OAuth那些事儿. 发表于2010-10-10. 由 老王. 61. 英国诗人蒲柏在牛顿的墓志铭中写道:『自然和自然的法则在黑暗中隐藏,上帝说,让牛顿去吧,于是一切都被照亮!. 』,而在保护账号安全方面, OAuth 起着如同牛顿般中流砥柱的作用,为什么这么说呢?.继续阅读 →.
火丁笔记
某个项目,因为监控尚不完善,所以我时常会人肉查查状态,终于有一天发现了异常: 如 继续阅读 →. 记一次Redis连接池问题引发的RST火丁笔记
虽说微服务早已是一个老生常谈的话题了,在 infoq或者 thoughtworks
上可以找到很多案例,不过可惜的是其中相当比例的案例是失败的案例,究其原因,除了技术门槛之外,主要是因为很多人脱离了实际情况,只是为了微服务而微服务。 本文通过一个例子带领大家从头到尾体验一下微服务的演化过程 老王 | 火丁笔记 由 老王. 2. 话说前几天我刚通过 mlcache 优化了热数据的问题,屁股还没坐热乎呢,就发现系统性能又下降了,本着自己挖的坑含泪也要填上的原则,我再一次开始了性能调优之旅。. 对某个 nginx 进程执行 perf top. 毫无疑问,从 perf top 结果来看,lj_str_new 已经成为浅谈CLOSE_WAIT
tcp
有很多连接状态,每一个都够聊十块钱儿的,比如我们以前讨论过 time_wait 和 fin_wait1,最近时不时听人提起 close_wait,感觉有必要梳理一下。. 所谓 close_wait,借用某位大牛的话来说应该倒过来叫做 wait_close,也就是说「等待关闭」,如果你还不理解其含义,可以看看tcp 关闭连
火丁笔记
我上一次遇到MySQL主从服务器数据一致性问题,想想是几年前的事情了,还依稀记得当时惊慌失措的情景,好在最后借助Maatkit解决了问题。 几年后,当我再次面对同样的问题时,Maatkit已经不复存在,转而成为了Percona Toolkit的一部分,不变的是我依旧手忙脚乱,所以还是记录一下吧,保不准啥时候又火丁笔记
发表于2018-06-23. 由 老王. 4. Twemproxy 可以说是最古老的Redis
代理软件了,一般来说,引入代理后性能会比没有引入代理时低一些,毕竟代理会导致一些额外的性能损耗,可是 Twemproxy 却会提升性能, 这主要得益于它的 Pipelining 功能可以实现打包请求,简单点说火丁笔记
运营反馈 Nginx 报 400 错误,具体点说:Request Header Or Cookie Too Large。其实随便搜搜就知道可以通过加大 client_header_buffer_size 和 large_client_header_buffers 来解决问题,不过这里面有一些细节值得讨论,正所谓:知其然,知其所以然。继续阅读 →
4月 | 2012 | 火丁笔记 但凡是一个合格的PHP程序员,就应该知道Unserialize与Autoload,但是要说起二者之间的关系,恐怕一清二楚的人就不多了。.继续阅读 →
在GOLANG的HTTP请求中共享数据 在Golang的HTTP请求中共享数据. 首先,我们需要先明确一下问题的描述:本文所要讨论的共享数据可不是指的cookie、session
之类的概念,它们描述的是在「请求间」共享数据,而我们关注的是在「请求中」共享数据,也就说是,在每个请求中的各个middleware 和
10月 | 2010 | 火丁笔记 OAuth那些事儿. 发表于2010-10-10. 由 老王. 61. 英国诗人蒲柏在牛顿的墓志铭中写道:『自然和自然的法则在黑暗中隐藏,上帝说,让牛顿去吧,于是一切都被照亮!. 』,而在保护账号安全方面, OAuth 起着如同牛顿般中流砥柱的作用,为什么这么说呢?.继续阅读 →.
火丁笔记
某个项目,因为监控尚不完善,所以我时常会人肉查查状态,终于有一天发现了异常: 如 继续阅读 →. 记一次Redis连接池问题引发的RST 6月 | 2020 | 火丁笔记 日常开发中,一个常见需求是判断一个元素是否在一个集合中。比如当你在浏览器中输入一个网址的时候,浏览器会判断网址 9月 | 2020 | 火丁笔记 面对性能调优问题,很多人往往只是单纯的套用既往的经验:先试试一个,不行再试试另一个。面对简单的问题,如此通常能事半功倍;但是当面对复杂问题的时候,单凭经验往往并不能达到立竿见影的效果,此时我们需要更精准的判断性能短板在哪里。 3月 | 2020 | 火丁笔记 所谓「代码热更新」,是指代码发生变化后,不用 reload 或者 graceful restart 进程就能生效。比如有一个聊天服务,连接着一百万个用户的长连接,所谓代码热更新就是在长连接不断的前提下完成代码更新。火丁笔记
1. 关于 OpenResty 的 cosocket ,文档里有如下一段描述:. the cosocket object here is full-duplex, that is, a reader “light thread” and a writer “light thread” can operate on a single cosocket object simultaneously (both “light threads” must belong to the same Lua handler though, see火丁笔记
运营反馈 Nginx 报 400 错误,具体点说:Request Header Or Cookie Too Large。其实随便搜搜就知道可以通过加大 client_header_buffer_size 和 large_client_header_buffers 来解决问题,不过这里面有一些细节值得讨论,正所谓:知其然,知其所以然。继续阅读 →
火丁笔记
我上一次遇到MySQL主从服务器数据一致性问题,想想是几年前的事情了,还依稀记得当时惊慌失措的情景,好在最后借助Maatkit解决了问题。 几年后,当我再次面对同样的问题时,Maatkit已经不复存在,转而成为了Percona Toolkit的一部分,不变的是我依旧手忙脚乱,所以还是记录一下吧,保不准啥时候又火丁笔记
提到MySQL高可用性,很多人会想到MySQL Cluster,亦或者Heartbeat+DRBD,不过这些方案的复杂性常常让人望而却步,与之相对,利用MySQL复制实现高可用性则显得容易很多,目前大致有MMM,MHA等方案可供选择:MMM是最常见的方案,可惜它问题太多(What’s wrong with MMM,Problems with MMM for MySQL);相比之下,MHA是火丁笔记
手把手教你用Dropwatch诊断问题. 发表于2016-12-15. 由 老王. 1. 老实说, Dropwatch 并不是什么新鲜玩意,很多年前 霸爷 就专门撰文介绍过它,通过它可以大概找出系统为什么会丢包,其原理就是跟踪 kfree_skb 的调用行为。. 不过虽然很多人知道它的存在,但是却并不 6月 | 2011 | 火丁笔记 所谓BigPipe,指的是Facebook开发的用来改善客户端响应速度的技术。 本质上讲,其实它并不是新事物,原理上等同于Yahoo在Best Practices for Speeding Up Your Web Site里提出的Flush the Buffer Early,不过BigPipe的实现更灵活,所以有必要了解一二。.继续阅读 →
7月 | 2013 | 火丁笔记 写了好多年的PHP代码,不免有些许的厌倦,是时候学一门新语言了,这就好比对男人来说,家里的女人看得久了,新鲜感荡然无存,自然想纳几房小妾,不过对于身处河东狮吼险境的我而言,此等美梦注定遥不可及,还是老老实实学编程吧,想当年我还像模像样的学过Python,可惜没坚持下来,希望火丁笔记
虽说微服务早已是一个老生常谈的话题了,在 infoq或者 thoughtworks
上可以找到很多案例,不过可惜的是其中相当比例的案例是失败的案例,究其原因,除了技术门槛之外,主要是因为很多人脱离了实际情况,只是为了微服务而微服务。 本文通过一个例子带领大家从头到尾体验一下微服务的演化过程 6月 | 2020 | 火丁笔记 日常开发中,一个常见需求是判断一个元素是否在一个集合中。比如当你在浏览器中输入一个网址的时候,浏览器会判断网址 老王 | 火丁笔记 由 老王. 2. 话说前几天我刚通过 mlcache 优化了热数据的问题,屁股还没坐热乎呢,就发现系统性能又下降了,本着自己挖的坑含泪也要填上的原则,我再一次开始了性能调优之旅。. 对某个 nginx 进程执行 perf top. 毫无疑问,从 perf top 结果来看,lj_str_new 已经成为浅谈CLOSE_WAIT
tcp
有很多连接状态,每一个都够聊十块钱儿的,比如我们以前讨论过 time_wait 和 fin_wait1,最近时不时听人提起 close_wait,感觉有必要梳理一下。. 所谓 close_wait,借用某位大牛的话来说应该倒过来叫做 wait_close,也就是说「等待关闭」,如果你还不理解其含义,可以看看tcp 关闭连
火丁笔记
发表于2018-06-23. 由 老王. 4. Twemproxy 可以说是最古老的Redis
代理软件了,一般来说,引入代理后性能会比没有引入代理时低一些,毕竟代理会导致一些额外的性能损耗,可是 Twemproxy 却会提升性能, 这主要得益于它的 Pipelining 功能可以实现打包请求,简单点说火丁笔记
我上一次遇到MySQL主从服务器数据一致性问题,想想是几年前的事情了,还依稀记得当时惊慌失措的情景,好在最后借助Maatkit解决了问题。 几年后,当我再次面对同样的问题时,Maatkit已经不复存在,转而成为了Percona Toolkit的一部分,不变的是我依旧手忙脚乱,所以还是记录一下吧,保不准啥时候又火丁笔记
提到MySQL高可用性,很多人会想到MySQL Cluster,亦或者Heartbeat+DRBD,不过这些方案的复杂性常常让人望而却步,与之相对,利用MySQL复制实现高可用性则显得容易很多,目前大致有MMM,MHA等方案可供选择:MMM是最常见的方案,可惜它问题太多(What’s wrong with MMM,Problems with MMM for MySQL);相比之下,MHA是火丁笔记
运营反馈 Nginx 报 400 错误,具体点说:Request Header Or Cookie Too Large。其实随便搜搜就知道可以通过加大 client_header_buffer_size 和 large_client_header_buffers 来解决问题,不过这里面有一些细节值得讨论,正所谓:知其然,知其所以然。继续阅读 →
7月 | 2014 | 火丁笔记 如果大家记忆力不太差的话,那么应该会记得前段时间发生的全国性DNS解析故障:很多顶级域名被解析到了IP地址 「65.49.2.178」,导致中国互联网瘫痪了几个小时。 不过在那起事件里一些移动客户端应用得以幸免,其原因在于它们使用了云端Hosts。火丁笔记
某个项目,因为监控尚不完善,所以我时常会人肉查查状态,终于有一天发现了异常: 如 继续阅读 →. 记一次Redis连接池问题引发的RST火丁笔记
虽说微服务早已是一个老生常谈的话题了,在 infoq或者 thoughtworks
上可以找到很多案例,不过可惜的是其中相当比例的案例是失败的案例,究其原因,除了技术门槛之外,主要是因为很多人脱离了实际情况,只是为了微服务而微服务。 本文通过一个例子带领大家从头到尾体验一下微服务的演化过程 6月 | 2020 | 火丁笔记 日常开发中,一个常见需求是判断一个元素是否在一个集合中。比如当你在浏览器中输入一个网址的时候,浏览器会判断网址 老王 | 火丁笔记 由 老王. 2. 话说前几天我刚通过 mlcache 优化了热数据的问题,屁股还没坐热乎呢,就发现系统性能又下降了,本着自己挖的坑含泪也要填上的原则,我再一次开始了性能调优之旅。. 对某个 nginx 进程执行 perf top. 毫无疑问,从 perf top 结果来看,lj_str_new 已经成为浅谈CLOSE_WAIT
tcp
有很多连接状态,每一个都够聊十块钱儿的,比如我们以前讨论过 time_wait 和 fin_wait1,最近时不时听人提起 close_wait,感觉有必要梳理一下。. 所谓 close_wait,借用某位大牛的话来说应该倒过来叫做 wait_close,也就是说「等待关闭」,如果你还不理解其含义,可以看看tcp 关闭连
火丁笔记
发表于2018-06-23. 由 老王. 4. Twemproxy 可以说是最古老的Redis
代理软件了,一般来说,引入代理后性能会比没有引入代理时低一些,毕竟代理会导致一些额外的性能损耗,可是 Twemproxy 却会提升性能, 这主要得益于它的 Pipelining 功能可以实现打包请求,简单点说火丁笔记
我上一次遇到MySQL主从服务器数据一致性问题,想想是几年前的事情了,还依稀记得当时惊慌失措的情景,好在最后借助Maatkit解决了问题。 几年后,当我再次面对同样的问题时,Maatkit已经不复存在,转而成为了Percona Toolkit的一部分,不变的是我依旧手忙脚乱,所以还是记录一下吧,保不准啥时候又火丁笔记
提到MySQL高可用性,很多人会想到MySQL Cluster,亦或者Heartbeat+DRBD,不过这些方案的复杂性常常让人望而却步,与之相对,利用MySQL复制实现高可用性则显得容易很多,目前大致有MMM,MHA等方案可供选择:MMM是最常见的方案,可惜它问题太多(What’s wrong with MMM,Problems with MMM for MySQL);相比之下,MHA是火丁笔记
运营反馈 Nginx 报 400 错误,具体点说:Request Header Or Cookie Too Large。其实随便搜搜就知道可以通过加大 client_header_buffer_size 和 large_client_header_buffers 来解决问题,不过这里面有一些细节值得讨论,正所谓:知其然,知其所以然。继续阅读 →
7月 | 2014 | 火丁笔记 如果大家记忆力不太差的话,那么应该会记得前段时间发生的全国性DNS解析故障:很多顶级域名被解析到了IP地址 「65.49.2.178」,导致中国互联网瘫痪了几个小时。 不过在那起事件里一些移动客户端应用得以幸免,其原因在于它们使用了云端Hosts。火丁笔记
某个项目,因为监控尚不完善,所以我时常会人肉查查状态,终于有一天发现了异常: 如 继续阅读 →. 记一次Redis连接池问题引发的RST 9月 | 2020 | 火丁笔记 面对性能调优问题,很多人往往只是单纯的套用既往的经验:先试试一个,不行再试试另一个。面对简单的问题,如此通常能事半功倍;但是当面对复杂问题的时候,单凭经验往往并不能达到立竿见影的效果,此时我们需要更精准的判断性能短板在哪里。 1月 | 2020 | 火丁笔记 如果使用 PHP 解析 XML 的话,那么常见的选择有如下几种:DOM、SimpleXML、XMLReader。 如果要解析 XML 大文件的话,那么首先要排除的是 DOM,因为使用 DOM 的话,需要把整个文件全部加载才能解析,效率堪忧,相比较而言,SimpleXML 和 XMLReader 更好些,SimpleXML 相对简单,而 XMLReader 相对复杂,但是它可以自 一个尾调用相关的诡异报错信息 就当我觉得可以轻而易举解决问题的时候,突然发现test
函数定义就没有参数,调用的时候也没传参数,真是太诡异了。. 看到这里,估计有人已经猜到原因了:问题似乎和尾调用( Tall call )相关,验证一下:. 当我们去掉尾调用后,错误信息恢复了正常,验证火丁笔记
运营反馈 Nginx 报 400 错误,具体点说:Request Header Or Cookie Too Large。其实随便搜搜就知道可以通过加大 client_header_buffer_size 和 large_client_header_buffers 来解决问题,不过这里面有一些细节值得讨论,正所谓:知其然,知其所以然。继续阅读 →
6月 | 2011 | 火丁笔记 所谓BigPipe,指的是Facebook开发的用来改善客户端响应速度的技术。 本质上讲,其实它并不是新事物,原理上等同于Yahoo在Best Practices for Speeding Up Your Web Site里提出的Flush the Buffer Early,不过BigPipe的实现更灵活,所以有必要了解一二。.继续阅读 →
火丁笔记
提到MySQL高可用性,很多人会想到MySQL Cluster,亦或者Heartbeat+DRBD,不过这些方案的复杂性常常让人望而却步,与之相对,利用MySQL复制实现高可用性则显得容易很多,目前大致有MMM,MHA等方案可供选择:MMM是最常见的方案,可惜它问题太多(What’s wrong with MMM,Problems with MMM for MySQL);相比之下,MHA是 1月 | 2013 | 火丁笔记 话说这些天电视上正在热映《隋唐英雄》,虽然我并没有看,但是对当年田连元老先生的评书联播《隋唐演义》却是记忆犹新,特别是故事里面讲到的程咬金的三板斧:拍蒜瓣、戳脚指甲盖、胡椒面,每每听来总是让人忍俊不禁,不过这些貌似无厘头的招数在实战中却往往有出奇制胜的效果 搭建以太坊智能合约测试环境 至此,一个基本的以太坊智能合约测试环境就搭建好了。. 我们接下来,可以通过 Ethereum Wallet 来部署(DEPLOY)一个简单的 HelloWorld 智能合约:. 用 Solidity 写一个最简版本的 Hello World 程序,源代码如下:. pragma solidity ^0.4.18; contract HelloWorld { function run () public pure 7月 | 2013 | 火丁笔记 写了好多年的PHP代码,不免有些许的厌倦,是时候学一门新语言了,这就好比对男人来说,家里的女人看得久了,新鲜感荡然无存,自然想纳几房小妾,不过对于身处河东狮吼险境的我而言,此等美梦注定遥不可及,还是老老实实学编程吧,想当年我还像模像样的学过Python,可惜没坚持下来,希望 在MONGODB中模拟AUTO INCREMENT MySQL用户多半都有Auto Increment情结,不过MongoDB缺省并没有实现,所以需要模拟一下,编程语言以PHP为例,代码大致如下所示:. 其具体实现方式主要是利用MongoDB中 findAndModify 命令,只要每次往MongoDB里insert对象前生成ID赋值给_id就OK了,因为它的实现满足原子性火丁笔记
虽说微服务早已是一个老生常谈的话题了,在 infoq或者 thoughtworks
上可以找到很多案例,不过可惜的是其中相当比例的案例是失败的案例,究其原因,除了技术门槛之外,主要是因为很多人脱离了实际情况,只是为了微服务而微服务。 本文通过一个例子带领大家从头到尾体验一下微服务的演化过程 6月 | 2020 | 火丁笔记 日常开发中,一个常见需求是判断一个元素是否在一个集合中。比如当你在浏览器中输入一个网址的时候,浏览器会判断网址 老王 | 火丁笔记 由 老王. 2. 话说前几天我刚通过 mlcache 优化了热数据的问题,屁股还没坐热乎呢,就发现系统性能又下降了,本着自己挖的坑含泪也要填上的原则,我再一次开始了性能调优之旅。. 对某个 nginx 进程执行 perf top. 毫无疑问,从 perf top 结果来看,lj_str_new 已经成为浅谈CLOSE_WAIT
tcp
有很多连接状态,每一个都够聊十块钱儿的,比如我们以前讨论过 time_wait 和 fin_wait1,最近时不时听人提起 close_wait,感觉有必要梳理一下。. 所谓 close_wait,借用某位大牛的话来说应该倒过来叫做 wait_close,也就是说「等待关闭」,如果你还不理解其含义,可以看看tcp 关闭连
火丁笔记
发表于2018-06-23. 由 老王. 4. Twemproxy 可以说是最古老的Redis
代理软件了,一般来说,引入代理后性能会比没有引入代理时低一些,毕竟代理会导致一些额外的性能损耗,可是 Twemproxy 却会提升性能, 这主要得益于它的 Pipelining 功能可以实现打包请求,简单点说火丁笔记
我上一次遇到MySQL主从服务器数据一致性问题,想想是几年前的事情了,还依稀记得当时惊慌失措的情景,好在最后借助Maatkit解决了问题。 几年后,当我再次面对同样的问题时,Maatkit已经不复存在,转而成为了Percona Toolkit的一部分,不变的是我依旧手忙脚乱,所以还是记录一下吧,保不准啥时候又火丁笔记
提到MySQL高可用性,很多人会想到MySQL Cluster,亦或者Heartbeat+DRBD,不过这些方案的复杂性常常让人望而却步,与之相对,利用MySQL复制实现高可用性则显得容易很多,目前大致有MMM,MHA等方案可供选择:MMM是最常见的方案,可惜它问题太多(What’s wrong with MMM,Problems with MMM for MySQL);相比之下,MHA是火丁笔记
运营反馈 Nginx 报 400 错误,具体点说:Request Header Or Cookie Too Large。其实随便搜搜就知道可以通过加大 client_header_buffer_size 和 large_client_header_buffers 来解决问题,不过这里面有一些细节值得讨论,正所谓:知其然,知其所以然。继续阅读 →
7月 | 2014 | 火丁笔记 如果大家记忆力不太差的话,那么应该会记得前段时间发生的全国性DNS解析故障:很多顶级域名被解析到了IP地址 「65.49.2.178」,导致中国互联网瘫痪了几个小时。 不过在那起事件里一些移动客户端应用得以幸免,其原因在于它们使用了云端Hosts。火丁笔记
某个项目,因为监控尚不完善,所以我时常会人肉查查状态,终于有一天发现了异常: 如 继续阅读 →. 记一次Redis连接池问题引发的RST火丁笔记
虽说微服务早已是一个老生常谈的话题了,在 infoq或者 thoughtworks
上可以找到很多案例,不过可惜的是其中相当比例的案例是失败的案例,究其原因,除了技术门槛之外,主要是因为很多人脱离了实际情况,只是为了微服务而微服务。 本文通过一个例子带领大家从头到尾体验一下微服务的演化过程 6月 | 2020 | 火丁笔记 日常开发中,一个常见需求是判断一个元素是否在一个集合中。比如当你在浏览器中输入一个网址的时候,浏览器会判断网址 老王 | 火丁笔记 由 老王. 2. 话说前几天我刚通过 mlcache 优化了热数据的问题,屁股还没坐热乎呢,就发现系统性能又下降了,本着自己挖的坑含泪也要填上的原则,我再一次开始了性能调优之旅。. 对某个 nginx 进程执行 perf top. 毫无疑问,从 perf top 结果来看,lj_str_new 已经成为浅谈CLOSE_WAIT
tcp
有很多连接状态,每一个都够聊十块钱儿的,比如我们以前讨论过 time_wait 和 fin_wait1,最近时不时听人提起 close_wait,感觉有必要梳理一下。. 所谓 close_wait,借用某位大牛的话来说应该倒过来叫做 wait_close,也就是说「等待关闭」,如果你还不理解其含义,可以看看tcp 关闭连
火丁笔记
发表于2018-06-23. 由 老王. 4. Twemproxy 可以说是最古老的Redis
代理软件了,一般来说,引入代理后性能会比没有引入代理时低一些,毕竟代理会导致一些额外的性能损耗,可是 Twemproxy 却会提升性能, 这主要得益于它的 Pipelining 功能可以实现打包请求,简单点说火丁笔记
我上一次遇到MySQL主从服务器数据一致性问题,想想是几年前的事情了,还依稀记得当时惊慌失措的情景,好在最后借助Maatkit解决了问题。 几年后,当我再次面对同样的问题时,Maatkit已经不复存在,转而成为了Percona Toolkit的一部分,不变的是我依旧手忙脚乱,所以还是记录一下吧,保不准啥时候又火丁笔记
提到MySQL高可用性,很多人会想到MySQL Cluster,亦或者Heartbeat+DRBD,不过这些方案的复杂性常常让人望而却步,与之相对,利用MySQL复制实现高可用性则显得容易很多,目前大致有MMM,MHA等方案可供选择:MMM是最常见的方案,可惜它问题太多(What’s wrong with MMM,Problems with MMM for MySQL);相比之下,MHA是火丁笔记
运营反馈 Nginx 报 400 错误,具体点说:Request Header Or Cookie Too Large。其实随便搜搜就知道可以通过加大 client_header_buffer_size 和 large_client_header_buffers 来解决问题,不过这里面有一些细节值得讨论,正所谓:知其然,知其所以然。继续阅读 →
7月 | 2014 | 火丁笔记 如果大家记忆力不太差的话,那么应该会记得前段时间发生的全国性DNS解析故障:很多顶级域名被解析到了IP地址 「65.49.2.178」,导致中国互联网瘫痪了几个小时。 不过在那起事件里一些移动客户端应用得以幸免,其原因在于它们使用了云端Hosts。火丁笔记
某个项目,因为监控尚不完善,所以我时常会人肉查查状态,终于有一天发现了异常: 如 继续阅读 →. 记一次Redis连接池问题引发的RST 6月 | 2020 | 火丁笔记 日常开发中,一个常见需求是判断一个元素是否在一个集合中。比如当你在浏览器中输入一个网址的时候,浏览器会判断网址火丁笔记
8.
谁都知道监控系统很重要,但是要自己搭建一套好用的系统却不是一件简单的事情。. 国内已经有不少厂商提供类似的服务,比如: OneAPM、 听云
,其原理就是通过在服务器上部署一套探针,把数据汇总上报,但是问题却不像说起来这么简单,我曾经买过国内火丁笔记
1. 大家都知道 Golang 推荐的错误处理的方式是使用 error,这主要得益于 Golang 方法可以返回多个值,我们可以很自然的用最后一个值来表示是否有错误,这一点是其它很多编程语言所不具备的,不过这多少让那些习惯了 exception 的程序员无所适从,虽然 Golang 没有火丁笔记
运营反馈 Nginx 报 400 错误,具体点说:Request Header Or Cookie Too Large。其实随便搜搜就知道可以通过加大 client_header_buffer_size 和 large_client_header_buffers 来解决问题,不过这里面有一些细节值得讨论,正所谓:知其然,知其所以然。继续阅读 →
火丁笔记
提到MySQL高可用性,很多人会想到MySQL Cluster,亦或者Heartbeat+DRBD,不过这些方案的复杂性常常让人望而却步,与之相对,利用MySQL复制实现高可用性则显得容易很多,目前大致有MMM,MHA等方案可供选择:MMM是最常见的方案,可惜它问题太多(What’s wrong with MMM,Problems with MMM for MySQL);相比之下,MHA是火丁笔记
简单说明一下:根节点中的 data 用来放置主对象的内容,其中 type 和 id 是必须要有的字段,用来表示主对象的类型和标识,其它简单的属性统统放置到attributes
里,如果主对象存在一对一、一对多等关联对象,那么放置到 relationships 里,不过只是通过 type 和 id 字段放置一个链接,关联对象的实际 6月 | 2011 | 火丁笔记 所谓BigPipe,指的是Facebook开发的用来改善客户端响应速度的技术。 本质上讲,其实它并不是新事物,原理上等同于Yahoo在Best Practices for Speeding Up Your Web Site里提出的Flush the Buffer Early,不过BigPipe的实现更灵活,所以有必要了解一二。.继续阅读 →
1月 | 2013 | 火丁笔记 话说这些天电视上正在热映《隋唐英雄》,虽然我并没有看,但是对当年田连元老先生的评书联播《隋唐演义》却是记忆犹新,特别是故事里面讲到的程咬金的三板斧:拍蒜瓣、戳脚指甲盖、胡椒面,每每听来总是让人忍俊不禁,不过这些貌似无厘头的招数在实战中却往往有出奇制胜的效果 10月 | 2010 | 火丁笔记 OAuth那些事儿. 发表于2010-10-10. 由 老王. 61. 英国诗人蒲柏在牛顿的墓志铭中写道:『自然和自然的法则在黑暗中隐藏,上帝说,让牛顿去吧,于是一切都被照亮!. 』,而在保护账号安全方面, OAuth 起着如同牛顿般中流砥柱的作用,为什么这么说呢?.继续阅读 →.
7月 | 2013 | 火丁笔记 写了好多年的PHP代码,不免有些许的厌倦,是时候学一门新语言了,这就好比对男人来说,家里的女人看得久了,新鲜感荡然无存,自然想纳几房小妾,不过对于身处河东狮吼险境的我而言,此等美梦注定遥不可及,还是老老实实学编程吧,想当年我还像模像样的学过Python,可惜没坚持下来,希望火丁笔记
虽说微服务早已是一个老生常谈的话题了,在 infoq或者 thoughtworks
上可以找到很多案例,不过可惜的是其中相当比例的案例是失败的案例,究其原因,除了技术门槛之外,主要是因为很多人脱离了实际情况,只是为了微服务而微服务。 本文通过一个例子带领大家从头到尾体验一下微服务的演化过程 6月 | 2020 | 火丁笔记 日常开发中,一个常见需求是判断一个元素是否在一个集合中。比如当你在浏览器中输入一个网址的时候,浏览器会判断网址 4月 | 2017 | 火丁笔记 本文说的排序并不是指「冒泡」之类的技术概念,而是一个业务相关的问题。继续阅读 →
浅谈CLOSE_WAIT
tcp
有很多连接状态,每一个都够聊十块钱儿的,比如我们以前讨论过 time_wait 和 fin_wait1,最近时不时听人提起 close_wait,感觉有必要梳理一下。. 所谓 close_wait,借用某位大牛的话来说应该倒过来叫做 wait_close,也就是说「等待关闭」,如果你还不理解其含义,可以看看tcp 关闭连
火丁笔记
对于码畜而言,如果使用 Mac 笔记本的话,那么 Alfred 和 Dash 基本属于必装软件,其中 Alfred 可以免费使用,但是高级的 Powerpack 功能需要付费,而 Dash 则更进一步,不仅要付费购买,连后续升级也要花钱。 这点钱对于富人来说或许不算什么,但对我这种工薪阶层来说就不一样了,能省就省,于是我火丁笔记
提到MySQL高可用性,很多人会想到MySQL Cluster,亦或者Heartbeat+DRBD,不过这些方案的复杂性常常让人望而却步,与之相对,利用MySQL复制实现高可用性则显得容易很多,目前大致有MMM,MHA等方案可供选择:MMM是最常见的方案,可惜它问题太多(What’s wrong with MMM,Problems with MMM for MySQL);相比之下,MHA是火丁笔记
我学习智能合约的一个主要途径就是在 DappRadar 看各个热门应用的源代码,前些天我在看 dice2win 的时候发现一个有趣的现象:虽然它自从上线以来已经多次部署过智能合约,不过让人好奇的是这些地址有一个特点,都有一个和名字很像的 「D1CE」前缀(因为的地址是十六进制的,所以字母 I被改为了
火丁笔记
运营反馈 Nginx 报 400 错误,具体点说:Request Header Or Cookie Too Large。其实随便搜搜就知道可以通过加大 client_header_buffer_size 和 large_client_header_buffers 来解决问题,不过这里面有一些细节值得讨论,正所谓:知其然,知其所以然。继续阅读 →
在GOLANG的HTTP请求中共享数据 首先,我们需要先明确一下问题的描述:本文所要讨论的共享数据可不是指的cookie、session
之类的概念,它们描述的是在「请求间」共享数据,而我们关注的是在「请求中」共享数据,也就说是,在每个请求中的各个 middleware 和 handler 之间共享数据。火丁笔记
很少有人关注配置文件,但它绝对是一个值得讨论的问题。 一个常见问题是:如何处理不 继续阅读 →.浅谈配置文件
火丁笔记
虽说微服务早已是一个老生常谈的话题了,在 infoq或者 thoughtworks
上可以找到很多案例,不过可惜的是其中相当比例的案例是失败的案例,究其原因,除了技术门槛之外,主要是因为很多人脱离了实际情况,只是为了微服务而微服务。 本文通过一个例子带领大家从头到尾体验一下微服务的演化过程 6月 | 2020 | 火丁笔记 日常开发中,一个常见需求是判断一个元素是否在一个集合中。比如当你在浏览器中输入一个网址的时候,浏览器会判断网址 4月 | 2017 | 火丁笔记 本文说的排序并不是指「冒泡」之类的技术概念,而是一个业务相关的问题。继续阅读 →
浅谈CLOSE_WAIT
tcp
有很多连接状态,每一个都够聊十块钱儿的,比如我们以前讨论过 time_wait 和 fin_wait1,最近时不时听人提起 close_wait,感觉有必要梳理一下。. 所谓 close_wait,借用某位大牛的话来说应该倒过来叫做 wait_close,也就是说「等待关闭」,如果你还不理解其含义,可以看看tcp 关闭连
火丁笔记
对于码畜而言,如果使用 Mac 笔记本的话,那么 Alfred 和 Dash 基本属于必装软件,其中 Alfred 可以免费使用,但是高级的 Powerpack 功能需要付费,而 Dash 则更进一步,不仅要付费购买,连后续升级也要花钱。 这点钱对于富人来说或许不算什么,但对我这种工薪阶层来说就不一样了,能省就省,于是我火丁笔记
提到MySQL高可用性,很多人会想到MySQL Cluster,亦或者Heartbeat+DRBD,不过这些方案的复杂性常常让人望而却步,与之相对,利用MySQL复制实现高可用性则显得容易很多,目前大致有MMM,MHA等方案可供选择:MMM是最常见的方案,可惜它问题太多(What’s wrong with MMM,Problems with MMM for MySQL);相比之下,MHA是火丁笔记
我学习智能合约的一个主要途径就是在 DappRadar 看各个热门应用的源代码,前些天我在看 dice2win 的时候发现一个有趣的现象:虽然它自从上线以来已经多次部署过智能合约,不过让人好奇的是这些地址有一个特点,都有一个和名字很像的 「D1CE」前缀(因为的地址是十六进制的,所以字母 I被改为了
火丁笔记
运营反馈 Nginx 报 400 错误,具体点说:Request Header Or Cookie Too Large。其实随便搜搜就知道可以通过加大 client_header_buffer_size 和 large_client_header_buffers 来解决问题,不过这里面有一些细节值得讨论,正所谓:知其然,知其所以然。继续阅读 →
在GOLANG的HTTP请求中共享数据 首先,我们需要先明确一下问题的描述:本文所要讨论的共享数据可不是指的cookie、session
之类的概念,它们描述的是在「请求间」共享数据,而我们关注的是在「请求中」共享数据,也就说是,在每个请求中的各个 middleware 和 handler 之间共享数据。火丁笔记
很少有人关注配置文件,但它绝对是一个值得讨论的问题。 一个常见问题是:如何处理不 继续阅读 →.浅谈配置文件
6月 | 2020 | 火丁笔记 日常开发中,一个常见需求是判断一个元素是否在一个集合中。比如当你在浏览器中输入一个网址的时候,浏览器会判断网址火丁笔记
某个项目把服务器从 CentOS 操作系统从 5 升级到了 7(3.10.0-693),一切都很顺利,直到我在服务器上闲逛的时候,无意间发现了一个「大问题」:网卡eth0 在 RX
上存在丢包(dropped)现象,丢得还很有规律,每一两秒丢一个包!火丁笔记
谁都知道监控系统很重要,但是要自己搭建一套好用的系统却不是一件简单的事情。国内已经有不少厂商提供类似的服务,比如:OneAPM、听云,其原理就是通过在服务器上部署一套探针,把数据汇总上报,但是问题却不像说起来这么简单,我曾经买过国内某个厂商高大上的 APM 服务,谁知道它监控的火丁笔记
运营反馈 Nginx 报 400 错误,具体点说:Request Header Or Cookie Too Large。其实随便搜搜就知道可以通过加大 client_header_buffer_size 和 large_client_header_buffers 来解决问题,不过这里面有一些细节值得讨论,正所谓:知其然,知其所以然。继续阅读 →
火丁笔记
我喜欢用 Mitmproxy 来处理手机 App 抓包之类的工作,本来用它来抓 Https 包是很容易的一件事,只要设置好代理,浏览 mitm.it 按提示安装证书即可,可是当 Android 版本升级到 7 以后,此方法就失效了,为什么呢? 因为新版 Android 缺省情况下只信任系统级证书,而不再信任用户级证书,问题详细描述可以 6月 | 2011 | 火丁笔记 所谓BigPipe,指的是Facebook开发的用来改善客户端响应速度的技术。 本质上讲,其实它并不是新事物,原理上等同于Yahoo在Best Practices for Speeding Up Your Web Site里提出的Flush the Buffer Early,不过BigPipe的实现更灵活,所以有必要了解一二。.继续阅读 →
火丁笔记
昨天,项目的 ElasticSearch 服务挂了,我说的挂可不是进程没了,因为有Supervisor
保护,而是服务不可用了。以前曾经出现过一次因为ES_HEAP_SIZE
设置不当导致的服务不可用故障,于是我惯性的判断应该还是ES_HEAP_SIZE
的问题,不过登录服务器后发现日志里显示大量的「Too many open files」错误信息。 10月 | 2010 | 火丁笔记 通常,图像处理工作都是诸如缩略图,水印之类的简单工作,不过有的时候会复杂些,比如像素迭代,本文通过一个实例对比Imagick和Gmagick的像素迭代功能:.继续阅读 →
1月 | 2013 | 火丁笔记 话说这些天电视上正在热映《隋唐英雄》,虽然我并没有看,但是对当年田连元老先生的评书联播《隋唐演义》却是记忆犹新,特别是故事里面讲到的程咬金的三板斧:拍蒜瓣、戳脚指甲盖、胡椒面,每每听来总是让人忍俊不禁,不过这些貌似无厘头的招数在实战中却往往有出奇制胜的效果 7月 | 2013 | 火丁笔记 写了好多年的PHP代码,不免有些许的厌倦,是时候学一门新语言了,这就好比对男人来说,家里的女人看得久了,新鲜感荡然无存,自然想纳几房小妾,不过对于身处河东狮吼险境的我而言,此等美梦注定遥不可及,还是老老实实学编程吧,想当年我还像模像样的学过Python,可惜没坚持下来,希望火丁笔记
虽说微服务早已是一个老生常谈的话题了,在 infoq或者 thoughtworks
上可以找到很多案例,不过可惜的是其中相当比例的案例是失败的案例,究其原因,除了技术门槛之外,主要是因为很多人脱离了实际情况,只是为了微服务而微服务。 本文通过一个例子带领大家从头到尾体验一下微服务的演化过程浅谈CLOSE_WAIT
tcp
有很多连接状态,每一个都够聊十块钱儿的,比如我们以前讨论过 time_wait 和 fin_wait1,最近时不时听人提起 close_wait,感觉有必要梳理一下。. 所谓 close_wait,借用某位大牛的话来说应该倒过来叫做 wait_close,也就是说「等待关闭」,如果你还不理解其含义,可以看看tcp 关闭连
11月 | 2018 | 火丁笔记 代码运行结果如下图所示:. checksum. 如果你没有 Golang 的运行环境,实际上还有更简单的验证方法:通过 Etherscan 来获取带 checksum 的地址,留意地址栏中的地址和下面 Address 旁边的地址:. etherscan. 总结:以太坊地址本身不区分大小写,但是出于安全性的考虑 2月 | 2011 | 火丁笔记 MySQL用户多半都有Auto Increment情结,不过MongoDB缺省并没有实现,所以需要模拟一下,编程语言以PHP为例,代码大致如下所示:实战GUZZLE抓取
虽然早就知道很多人用 Guzzle 爬数据,但是我却从来没有真正实践过,因为在我的潜意识里,抓取是Python 的地盘。
不过前段时间,当我抓汽车之家数据的时候,好心人跟我提起 Goutte 搭配 Guzzle 是最好的爬虫,让我一直记挂在心上,加上最近打算更新一下车型数据,于是我便重写了抓取汽车 在GOLANG的HTTP请求中共享数据 在Golang的HTTP请求中共享数据. 首先,我们需要先明确一下问题的描述:本文所要讨论的共享数据可不是指的cookie、session
之类的概念,它们描述的是在「请求间」共享数据,而我们关注的是在「请求中」共享数据,也就说是,在每个请求中的各个middleware 和
搭建以太坊智能合约测试环境 至此,一个基本的以太坊智能合约测试环境就搭建好了。. 我们接下来,可以通过 Ethereum Wallet 来部署(DEPLOY)一个简单的 HelloWorld 智能合约:. 用 Solidity 写一个最简版本的 Hello World 程序,源代码如下:. pragma solidity ^0.4.18; contract HelloWorld { function run () public pure 6月 | 2011 | 火丁笔记 所谓BigPipe,指的是Facebook开发的用来改善客户端响应速度的技术。 本质上讲,其实它并不是新事物,原理上等同于Yahoo在Best Practices for Speeding Up Your Web Site里提出的Flush the Buffer Early,不过BigPipe的实现更灵活,所以有必要了解一二。.继续阅读 →
10月 | 2010 | 火丁笔记 OAuth那些事儿. 发表于2010-10-10. 由 老王. 61. 英国诗人蒲柏在牛顿的墓志铭中写道:『自然和自然的法则在黑暗中隐藏,上帝说,让牛顿去吧,于是一切都被照亮!. 』,而在保护账号安全方面, OAuth 起着如同牛顿般中流砥柱的作用,为什么这么说呢?.继续阅读 →.
火丁笔记
很少有人关注配置文件,但它绝对是一个值得讨论的问题。 一个常见问题是:如何处理不 继续阅读 →.浅谈配置文件
火丁笔记
虽说微服务早已是一个老生常谈的话题了,在 infoq或者 thoughtworks
上可以找到很多案例,不过可惜的是其中相当比例的案例是失败的案例,究其原因,除了技术门槛之外,主要是因为很多人脱离了实际情况,只是为了微服务而微服务。 本文通过一个例子带领大家从头到尾体验一下微服务的演化过程浅谈CLOSE_WAIT
tcp
有很多连接状态,每一个都够聊十块钱儿的,比如我们以前讨论过 time_wait 和 fin_wait1,最近时不时听人提起 close_wait,感觉有必要梳理一下。. 所谓 close_wait,借用某位大牛的话来说应该倒过来叫做 wait_close,也就是说「等待关闭」,如果你还不理解其含义,可以看看tcp 关闭连
11月 | 2018 | 火丁笔记 代码运行结果如下图所示:. checksum. 如果你没有 Golang 的运行环境,实际上还有更简单的验证方法:通过 Etherscan 来获取带 checksum 的地址,留意地址栏中的地址和下面 Address 旁边的地址:. etherscan. 总结:以太坊地址本身不区分大小写,但是出于安全性的考虑 2月 | 2011 | 火丁笔记 MySQL用户多半都有Auto Increment情结,不过MongoDB缺省并没有实现,所以需要模拟一下,编程语言以PHP为例,代码大致如下所示:实战GUZZLE抓取
虽然早就知道很多人用 Guzzle 爬数据,但是我却从来没有真正实践过,因为在我的潜意识里,抓取是Python 的地盘。
不过前段时间,当我抓汽车之家数据的时候,好心人跟我提起 Goutte 搭配 Guzzle 是最好的爬虫,让我一直记挂在心上,加上最近打算更新一下车型数据,于是我便重写了抓取汽车 在GOLANG的HTTP请求中共享数据 在Golang的HTTP请求中共享数据. 首先,我们需要先明确一下问题的描述:本文所要讨论的共享数据可不是指的cookie、session
之类的概念,它们描述的是在「请求间」共享数据,而我们关注的是在「请求中」共享数据,也就说是,在每个请求中的各个middleware 和
搭建以太坊智能合约测试环境 至此,一个基本的以太坊智能合约测试环境就搭建好了。. 我们接下来,可以通过 Ethereum Wallet 来部署(DEPLOY)一个简单的 HelloWorld 智能合约:. 用 Solidity 写一个最简版本的 Hello World 程序,源代码如下:. pragma solidity ^0.4.18; contract HelloWorld { function run () public pure 6月 | 2011 | 火丁笔记 所谓BigPipe,指的是Facebook开发的用来改善客户端响应速度的技术。 本质上讲,其实它并不是新事物,原理上等同于Yahoo在Best Practices for Speeding Up Your Web Site里提出的Flush the Buffer Early,不过BigPipe的实现更灵活,所以有必要了解一二。.继续阅读 →
10月 | 2010 | 火丁笔记 OAuth那些事儿. 发表于2010-10-10. 由 老王. 61. 英国诗人蒲柏在牛顿的墓志铭中写道:『自然和自然的法则在黑暗中隐藏,上帝说,让牛顿去吧,于是一切都被照亮!. 』,而在保护账号安全方面, OAuth 起着如同牛顿般中流砥柱的作用,为什么这么说呢?.继续阅读 →.
火丁笔记
很少有人关注配置文件,但它绝对是一个值得讨论的问题。 一个常见问题是:如何处理不 继续阅读 →.浅谈配置文件
11月 | 2018 | 火丁笔记 代码运行结果如下图所示:. checksum. 如果你没有 Golang 的运行环境,实际上还有更简单的验证方法:通过 Etherscan 来获取带 checksum 的地址,留意地址栏中的地址和下面 Address 旁边的地址:. etherscan. 总结:以太坊地址本身不区分大小写,但是出于安全性的考虑 TO PANIC OR NOT TO PANIC To panic or not to panic. 发表于2019-03-27. 由 老王. 大家都知道 Golang 推荐的错误处理的方式是使用 error,这主要得益于 Golang 方法可以返回多个值,我们可以很自然的用最后一个值来表示是否有错误,这一点是其它很多编程语言所不具备的,不过这多少让那些习惯了实战GUZZLE抓取
虽然早就知道很多人用 Guzzle 爬数据,但是我却从来没有真正实践过,因为在我的潜意识里,抓取是Python 的地盘。
不过前段时间,当我抓汽车之家数据的时候,好心人跟我提起 Goutte 搭配 Guzzle 是最好的爬虫,让我一直记挂在心上,加上最近打算更新一下车型数据,于是我便重写了抓取汽车火丁笔记
手把手教你用Dropwatch诊断问题. 发表于2016-12-15. 由 老王. 1. 老实说, Dropwatch 并不是什么新鲜玩意,很多年前 霸爷 就专门撰文介绍过它,通过它可以大概找出系统为什么会丢包,其原理就是跟踪 kfree_skb 的调用行为。. 不过虽然很多人知道它的存在,但是却并不火丁笔记
1. 大家都知道 Golang 推荐的错误处理的方式是使用 error,这主要得益于 Golang 方法可以返回多个值,我们可以很自然的用最后一个值来表示是否有错误,这一点是其它很多编程语言所不具备的,不过这多少让那些习惯了 exception 的程序员无所适从,虽然 Golang 没有 8月 | 2013 | 火丁笔记 前些年,HandlerSocket的横空出世让人们眼前一亮,当时我还写了一篇文章介绍了其用法梗概,时至今日,由于种种原因,HandlerSocket并没有真正流行起来,不过庆幸的是MySQL官方受其启发,研发了基于InnoDB的Memcached插件,总算是在MySQL中延续了NoSQL的香火,以前单独架设Memcached服务器不仅浪费了内存 6月 | 2011 | 火丁笔记 所谓BigPipe,指的是Facebook开发的用来改善客户端响应速度的技术。 本质上讲,其实它并不是新事物,原理上等同于Yahoo在Best Practices for Speeding Up Your Web Site里提出的Flush the Buffer Early,不过BigPipe的实现更灵活,所以有必要了解一二。.继续阅读 →
5月 | 2018 | 火丁笔记 如果有人说你的 http 接口响应慢,那可能是他的电脑慢,也可能是网络本身慢,还可能是你的服务器慢,总之想搞清楚到底是哪里慢并不是一件简单的事情,好在有一些小工具可以帮你快速做出正确的判断。 2月 | 2014 | 火丁笔记 似乎多数人都觉得Include文件是一件非常简单的事情,可惜漏洞往往出现在我们忽视的地方。正所谓千里之堤溃于蚁穴,二战期间,法国人寄希望与马奇诺防线,却忽视了原本认为非常安全的阿登高地,让德国人有机可乘,最终的结果大家都知道了。 4月 | 2011 | 火丁笔记 当PHP运行在FastCGI模式时,PHP FPM提供了一个名为fastcgi_finish_request的方法。 按照文档上的说法,此方法可以提高请求的处理速度,如果有些处理可以在页面生成完后再进行,就可以使用这个方法。火丁笔记
虽说微服务早已是一个老生常谈的话题了,在 infoq或者 thoughtworks
上可以找到很多案例,不过可惜的是其中相当比例的案例是失败的案例,究其原因,除了技术门槛之外,主要是因为很多人脱离了实际情况,只是为了微服务而微服务。 本文通过一个例子带领大家从头到尾体验一下微服务的演化过程浅谈CLOSE_WAIT
tcp
有很多连接状态,每一个都够聊十块钱儿的,比如我们以前讨论过 time_wait 和 fin_wait1,最近时不时听人提起 close_wait,感觉有必要梳理一下。. 所谓 close_wait,借用某位大牛的话来说应该倒过来叫做 wait_close,也就是说「等待关闭」,如果你还不理解其含义,可以看看tcp 关闭连
11月 | 2018 | 火丁笔记 代码运行结果如下图所示:. checksum. 如果你没有 Golang 的运行环境,实际上还有更简单的验证方法:通过 Etherscan 来获取带 checksum 的地址,留意地址栏中的地址和下面 Address 旁边的地址:. etherscan. 总结:以太坊地址本身不区分大小写,但是出于安全性的考虑 2月 | 2011 | 火丁笔记 MySQL用户多半都有Auto Increment情结,不过MongoDB缺省并没有实现,所以需要模拟一下,编程语言以PHP为例,代码大致如下所示:实战GUZZLE抓取
虽然早就知道很多人用 Guzzle 爬数据,但是我却从来没有真正实践过,因为在我的潜意识里,抓取是Python 的地盘。
不过前段时间,当我抓汽车之家数据的时候,好心人跟我提起 Goutte 搭配 Guzzle 是最好的爬虫,让我一直记挂在心上,加上最近打算更新一下车型数据,于是我便重写了抓取汽车 在GOLANG的HTTP请求中共享数据 在Golang的HTTP请求中共享数据. 首先,我们需要先明确一下问题的描述:本文所要讨论的共享数据可不是指的cookie、session
之类的概念,它们描述的是在「请求间」共享数据,而我们关注的是在「请求中」共享数据,也就说是,在每个请求中的各个middleware 和
搭建以太坊智能合约测试环境 至此,一个基本的以太坊智能合约测试环境就搭建好了。. 我们接下来,可以通过 Ethereum Wallet 来部署(DEPLOY)一个简单的 HelloWorld 智能合约:. 用 Solidity 写一个最简版本的 Hello World 程序,源代码如下:. pragma solidity ^0.4.18; contract HelloWorld { function run () public pure 6月 | 2011 | 火丁笔记 所谓BigPipe,指的是Facebook开发的用来改善客户端响应速度的技术。 本质上讲,其实它并不是新事物,原理上等同于Yahoo在Best Practices for Speeding Up Your Web Site里提出的Flush the Buffer Early,不过BigPipe的实现更灵活,所以有必要了解一二。.继续阅读 →
10月 | 2010 | 火丁笔记 OAuth那些事儿. 发表于2010-10-10. 由 老王. 61. 英国诗人蒲柏在牛顿的墓志铭中写道:『自然和自然的法则在黑暗中隐藏,上帝说,让牛顿去吧,于是一切都被照亮!. 』,而在保护账号安全方面, OAuth 起着如同牛顿般中流砥柱的作用,为什么这么说呢?.继续阅读 →.
火丁笔记
很少有人关注配置文件,但它绝对是一个值得讨论的问题。 一个常见问题是:如何处理不 继续阅读 →.浅谈配置文件
火丁笔记
虽说微服务早已是一个老生常谈的话题了,在 infoq或者 thoughtworks
上可以找到很多案例,不过可惜的是其中相当比例的案例是失败的案例,究其原因,除了技术门槛之外,主要是因为很多人脱离了实际情况,只是为了微服务而微服务。 本文通过一个例子带领大家从头到尾体验一下微服务的演化过程浅谈CLOSE_WAIT
tcp
有很多连接状态,每一个都够聊十块钱儿的,比如我们以前讨论过 time_wait 和 fin_wait1,最近时不时听人提起 close_wait,感觉有必要梳理一下。. 所谓 close_wait,借用某位大牛的话来说应该倒过来叫做 wait_close,也就是说「等待关闭」,如果你还不理解其含义,可以看看tcp 关闭连
11月 | 2018 | 火丁笔记 代码运行结果如下图所示:. checksum. 如果你没有 Golang 的运行环境,实际上还有更简单的验证方法:通过 Etherscan 来获取带 checksum 的地址,留意地址栏中的地址和下面 Address 旁边的地址:. etherscan. 总结:以太坊地址本身不区分大小写,但是出于安全性的考虑 2月 | 2011 | 火丁笔记 MySQL用户多半都有Auto Increment情结,不过MongoDB缺省并没有实现,所以需要模拟一下,编程语言以PHP为例,代码大致如下所示:实战GUZZLE抓取
虽然早就知道很多人用 Guzzle 爬数据,但是我却从来没有真正实践过,因为在我的潜意识里,抓取是Python 的地盘。
不过前段时间,当我抓汽车之家数据的时候,好心人跟我提起 Goutte 搭配 Guzzle 是最好的爬虫,让我一直记挂在心上,加上最近打算更新一下车型数据,于是我便重写了抓取汽车 在GOLANG的HTTP请求中共享数据 在Golang的HTTP请求中共享数据. 首先,我们需要先明确一下问题的描述:本文所要讨论的共享数据可不是指的cookie、session
之类的概念,它们描述的是在「请求间」共享数据,而我们关注的是在「请求中」共享数据,也就说是,在每个请求中的各个middleware 和
搭建以太坊智能合约测试环境 至此,一个基本的以太坊智能合约测试环境就搭建好了。. 我们接下来,可以通过 Ethereum Wallet 来部署(DEPLOY)一个简单的 HelloWorld 智能合约:. 用 Solidity 写一个最简版本的 Hello World 程序,源代码如下:. pragma solidity ^0.4.18; contract HelloWorld { function run () public pure 6月 | 2011 | 火丁笔记 所谓BigPipe,指的是Facebook开发的用来改善客户端响应速度的技术。 本质上讲,其实它并不是新事物,原理上等同于Yahoo在Best Practices for Speeding Up Your Web Site里提出的Flush the Buffer Early,不过BigPipe的实现更灵活,所以有必要了解一二。.继续阅读 →
10月 | 2010 | 火丁笔记 OAuth那些事儿. 发表于2010-10-10. 由 老王. 61. 英国诗人蒲柏在牛顿的墓志铭中写道:『自然和自然的法则在黑暗中隐藏,上帝说,让牛顿去吧,于是一切都被照亮!. 』,而在保护账号安全方面, OAuth 起着如同牛顿般中流砥柱的作用,为什么这么说呢?.继续阅读 →.
火丁笔记
很少有人关注配置文件,但它绝对是一个值得讨论的问题。 一个常见问题是:如何处理不 继续阅读 →.浅谈配置文件
11月 | 2018 | 火丁笔记 代码运行结果如下图所示:. checksum. 如果你没有 Golang 的运行环境,实际上还有更简单的验证方法:通过 Etherscan 来获取带 checksum 的地址,留意地址栏中的地址和下面 Address 旁边的地址:. etherscan. 总结:以太坊地址本身不区分大小写,但是出于安全性的考虑 TO PANIC OR NOT TO PANIC To panic or not to panic. 发表于2019-03-27. 由 老王. 大家都知道 Golang 推荐的错误处理的方式是使用 error,这主要得益于 Golang 方法可以返回多个值,我们可以很自然的用最后一个值来表示是否有错误,这一点是其它很多编程语言所不具备的,不过这多少让那些习惯了实战GUZZLE抓取
虽然早就知道很多人用 Guzzle 爬数据,但是我却从来没有真正实践过,因为在我的潜意识里,抓取是Python 的地盘。
不过前段时间,当我抓汽车之家数据的时候,好心人跟我提起 Goutte 搭配 Guzzle 是最好的爬虫,让我一直记挂在心上,加上最近打算更新一下车型数据,于是我便重写了抓取汽车火丁笔记
手把手教你用Dropwatch诊断问题. 发表于2016-12-15. 由 老王. 1. 老实说, Dropwatch 并不是什么新鲜玩意,很多年前 霸爷 就专门撰文介绍过它,通过它可以大概找出系统为什么会丢包,其原理就是跟踪 kfree_skb 的调用行为。. 不过虽然很多人知道它的存在,但是却并不火丁笔记
1. 大家都知道 Golang 推荐的错误处理的方式是使用 error,这主要得益于 Golang 方法可以返回多个值,我们可以很自然的用最后一个值来表示是否有错误,这一点是其它很多编程语言所不具备的,不过这多少让那些习惯了 exception 的程序员无所适从,虽然 Golang 没有 8月 | 2013 | 火丁笔记 前些年,HandlerSocket的横空出世让人们眼前一亮,当时我还写了一篇文章介绍了其用法梗概,时至今日,由于种种原因,HandlerSocket并没有真正流行起来,不过庆幸的是MySQL官方受其启发,研发了基于InnoDB的Memcached插件,总算是在MySQL中延续了NoSQL的香火,以前单独架设Memcached服务器不仅浪费了内存 6月 | 2011 | 火丁笔记 所谓BigPipe,指的是Facebook开发的用来改善客户端响应速度的技术。 本质上讲,其实它并不是新事物,原理上等同于Yahoo在Best Practices for Speeding Up Your Web Site里提出的Flush the Buffer Early,不过BigPipe的实现更灵活,所以有必要了解一二。.继续阅读 →
5月 | 2018 | 火丁笔记 如果有人说你的 http 接口响应慢,那可能是他的电脑慢,也可能是网络本身慢,还可能是你的服务器慢,总之想搞清楚到底是哪里慢并不是一件简单的事情,好在有一些小工具可以帮你快速做出正确的判断。 2月 | 2014 | 火丁笔记 似乎多数人都觉得Include文件是一件非常简单的事情,可惜漏洞往往出现在我们忽视的地方。正所谓千里之堤溃于蚁穴,二战期间,法国人寄希望与马奇诺防线,却忽视了原本认为非常安全的阿登高地,让德国人有机可乘,最终的结果大家都知道了。 4月 | 2011 | 火丁笔记 当PHP运行在FastCGI模式时,PHP FPM提供了一个名为fastcgi_finish_request的方法。 按照文档上的说法,此方法可以提高请求的处理速度,如果有些处理可以在页面生成完后再进行,就可以使用这个方法。 跳至主内容区域 跳至副内容区域火丁笔记
多研究些问题,少谈些主义。搜索
主页
* 首页
* About
文章导航
← 早期文
如何在OPENRESTY里实现代码热更新发表于2020-03-25
由老王
回复
所谓「代码热更新」,是指代码发生变化后,不用 reload 或者 graceful restart 进程就能生效。比如有一个聊天服务,连接着一百万个用户的长连接,所谓代码热更新就是在长连接不断的前提下完成代码更新。实际上因为所有的 require 操作都是通过 package.loaded 来加载模块的,只要代码是以 module 的形式组织的,那么就可以通过 package.loaded 实现代码热更新,并且基本不影响性能。继续阅读 →
发表在 Technical | 标签为 OpenResty |发表评论
手把手教你用OPENRESTY里的FFI发表于2020-03-08
由老王
回复
了解 OpenResty 的人应该知道,OpenResty 原本的 API 都是基于 C 实现的,不过在新版里都已经改成了基于 FFI 实现的,为什么这么做?因为 FFI 在效率上更有优势,除此以外,FFI 还有一个优点是可以很便利的和 C 交互,我们不妨设想一下,C 语言有那么多成熟的库,通过 FFI,我们可以轻而易举的引入到自己的应用中,何乐而不为呢?继续阅读 →
发表在 Technical | 标签为 OpenResty |发表评论
一个尾调用相关的诡异报错信息发表于2020-03-03
由老王
2
一个 OpenResty
的接口报错了,我查了一下日志,发现如下报错信息: > bad argument #1 to ‘test’ (string expected, got userdata) 看上去这就是一道送分题啊:无非就是 test 函数的第一个参数类型应该是 string,实际传递的却是 userdata。就当我觉得可以轻而易举解决问题的时候,突然发现test
函数定义就没有参数,调用的时候也没传参数,真是太诡异了。继续阅读 →
发表在 Technical | 标签为 OpenResty |2条回复
如何扩展一个OPENRESTY模块发表于2020-02-19
由老王
回复
因为 Lua
本身并没有继承之类的语法,所以我们不能通过 OOP 的套路来扩展模块,不过实际上对于 Lua 来说,扩展一个模块有更简单的方法,下面我们以lua-resty-string
模块中的 aes
加解密功能为例子来说明一下。继续阅读 →
发表在 Technical | 标签为 OpenResty |发表评论
关于 COSOCKET 的 SOCKET BUSY 报错发表于2020-01-15
由老王
1
关于 OpenResty 的 cosocket ,文档里有如下一段描述: > the cosocket object here is full-duplex, that is, a reader “light > thread” and a writer “light thread” can operate on a single > cosocket object simultaneously (both “light threads” must belong > to the same Lua handler though, see reasons above). But you cannot > have two “light threads” both reading (or writing or connecting) > the same cosocket, otherwise you might get an error like “socket > busy reading” when calling the methods of the cosocket object. 简单点儿说,cosocket 是全双工的,如果同一个 luahandler
有一个读线程和一个写线程的话,那么它们可以同时操作一个 cosocket 对象,但是如果两个线程一起读或者写一个 cosocket 对象的话,那么会触发「socket busy」错误。继续阅读 →
发表在 Technical | 标签为 OpenResty |1条回复
如何使用PHP解析XML大文件发表于2020-01-05
由老王
回复
如果使用 PHP 解析 XML 的话,那么常见的选择有如下几种:DOM、SimpleXML
、XMLReader
。如果要解析
XML 大文件的话,那么首先要排除的是 DOM,因为使用DOM
的话,需要把整个文件全部加载才能解析,效率堪忧,相比较而言,SimpleXML 和 XMLReader 更好些,SimpleXML 相对简单,而 XMLReader 相对复杂,但是它可以自定义解析整个过程,特别是流式解析的特点让其效率更高。继续阅读 →
发表在 Technical | 标签为 PHP | 发表评论 被忽视的TIME命令发表于2019-12-08
由老王
3
如果要选 Linux 下最容易被忽视的命令,time 应该算一个。简单来说,它是一个用来计算命令运行时间的工具,之所以说它容易被忽视,一方面很多人根本不知道time
的存在,而是习惯在命令启动前后记录两个时间戳,然后手动计算命令运行时间;另一方面很多人虽然知道 time 的存在,但是却并没有真正理解它的含义。继续阅读 →
发表在 Technical | 标签为 Linux | 3条回复 使用FIDDLER把请求从HTTPS改成HTTP发表于2019-11-30
由老王
回复
为什么我要把请求从 HTTPS 改成 HTTP?这是因为生产环境是 HTTPS 的,而测试环境却是HTTP
的,我要在测试环境测试应用,所以需要把请求从 HTTPS 改成 HTTP。为什么我不在测试环境部署一套 HTTPS 证书?这是因为 HTTPS 证书属于敏感信息。继续阅读 →
发表在 Technical |发表评论
OPENRESTY与模块
发表于2019-10-31
由老王
1
Lua
中没有常见面向对象语言中所谓类的概念,取而代之使用模块来组织管理代码。关于模块的基础知识大家可以参考「OpenResty最佳实战
」,本文聊点别的。继续阅读 →
发表在 Technical | 标签为 OpenResty |1条回复
如何查询同时包含多个指定标签的文发表于2019-09-22
由老王
4
文章和标签是典型的多对多的关系,也就是说每一篇文章都可以包含多个标签,如图: 每一篇文章都可以包含多个标签 下面问题来了:如何查询 tag_id 同时包含 1、2、3 的 article_id?此问题看似简单,实际上也非常简单,本来是一道送分题,但是很多人却做不出来!继续阅读 →
发表在 Technical | 标签为 MySQL | 4条回复文章导航
← 早期文
微博
火丁笔记
标签
* AWK
* Backup
* Benchmark
* BOM
* Ethereum
* Failover
* Gearman
* GIF
* Gmagick
* Gnuplot
* Golang
* Grep
* HandlerSocket
* Heatmap
* HTTP
* ImageMagick
* Imagick
* Javascript
* Linux
* Lua
* Memcached
* MongoDB
* MVC
* MVP
* MySQL
* Nginx
* OAuth
* OpenResty
* Pattern
* Performance
* PHP
* PostgreSQL
* Python
* Recursion
* Redis
* Regex
* Replication
* Sed
* SELinux
* Shell
* Strace
* Subversion
* TCP
* UTF-8
* XML
文章归档
文章归档 选择月份 2020年三月 (3) 2020年二月 (1) 2020年一月 (2) 2019年十二月 (1) 2019年十一月 (1) 2019年十月 (1) 2019年九月 (1) 2019年八月 (3) 2019年七月 (1) 2019年六月 (1) 2019年五月 (2) 2019年四月 (2) 2019年三月 (1) 2019年二月 (1) 2019年一月 (1) 2018年十二月 (1) 2018年十一月 (1) 2018年十月 (1) 2018年九月 (2) 2018年八月 (1) 2018年七月 (1) 2018年六月 (1) 2018年五月 (1) 2018年四月 (1) 2018年三月 (1) 2018年二月 (1) 2018年一月 (1) 2017年十二月 (1) 2017年十一月 (1) 2017年十月 (1) 2017年九月 (1) 2017年八月 (2) 2017年七月 (1) 2017年六月 (1) 2017年五月 (1) 2017年四月 (1) 2017年三月 (1) 2017年二月 (1) 2017年一月 (4) 2016年十二月 (6) 2016年十一月 (2) 2016年十月 (1) 2016年九月 (2) 2016年八月 (1) 2016年七月 (1) 2016年六月 (1) 2016年五月 (1) 2016年四月 (1) 2016年三月 (1) 2016年二月 (1) 2016年一月 (1) 2015年十二月 (1) 2015年十一月 (2) 2015年十月 (2) 2015年九月 (1) 2015年八月 (1) 2015年七月 (1) 2015年六月 (2) 2015年五月 (1) 2015年四月 (1) 2015年三月 (2) 2015年二月 (1) 2015年一月 (1) 2014年十二月 (2) 2014年十一月 (2) 2014年十月 (1) 2014年九月 (1) 2014年八月 (1) 2014年七月 (1) 2014年六月 (2) 2014年五月 (2) 2014年四月 (1) 2014年三月 (1) 2014年二月 (2) 2014年一月 (1) 2013年十二月 (1) 2013年十一月 (1) 2013年十月 (3) 2013年九月 (1) 2013年八月 (2) 2013年七月 (3) 2013年六月 (1) 2013年五月 (3) 2013年四月 (1) 2013年三月 (2) 2013年二月 (2) 2013年一月 (3) 2012年十二月 (1) 2012年十一月 (1) 2012年十月 (1) 2012年九月 (1) 2012年八月 (1) 2012年七月 (1) 2012年六月 (1) 2012年五月 (1) 2012年四月 (1) 2012年三月 (1) 2012年二月 (1) 2012年一月 (1) 2011年十二月 (1) 2011年十一月 (2) 2011年十月 (1) 2011年九月 (2) 2011年八月 (3) 2011年七月 (1) 2011年六月 (4) 2011年五月 (3) 2011年四月 (3) 2011年三月 (4) 2011年二月 (1) 2011年一月 (3) 2010年十二月 (2) 2010年十一月 (2)2010年十月 (5)
近期文
* 如何在OpenResty里实现代码热更新 * 手把手教你用OpenResty里的FFI * 一个尾调用相关的诡异报错信息 * 如何扩展一个OpenResty模块 * 关于 Cosocket 的 socket busy 报错 * 如何使用PHP解析XML大文件 * 被忽视的time命令 * 使用Fiddler把请求从HTTPS改成HTTP * OpenResty与模块 * 如何查询同时包含多个指定标签的文 * 为什么「0.1+0.2!=0.3」,而「0.1+0.3==0.4」 * 数据库ID生成器基准测试 * WRK:一个可编程的HTTP性能测试工具 * 如何在环境中存储配置* OpenResty 101
* 关于手机App的Https抓包* 聊聊AES
* Golang之Context的迷思 * 如何优化Golang中重复的错误处理 * To panic or not to panic * 在Golang的HTTP请求中共享数据 * 学习Golang的HTTP中间件机制 * 推导利滚利公式 * 以太坊地址区分大小写么 * 关于以太坊随机数 * 如何解密keystore文件 * 如何实现一个定制的智能合约地址 * 搭建以太坊智能合约测试环境 * 通过ProxySQL提升PHP/MySQL的性能 * 通过Twemproxy提升PHP/Redis的性能 * 几个用于诊断HTTP响应时间情况的小工具 * 如何编码事务 * 记录file_get_contents返回空字符串的问题 * 谈谈SQL查询中回表对性能的影响 * 记一次sftp故障 * 谈谈JSONAPI在PHP中的应用 * 在同一个系统里使用多个版本的软件 * SYN丢包的几个例子 * 史上最LOW的PHP连接池解决方案 * 实战Guzzle抓取* SYN和RTO
* 如何快速判断配置文件的路径 * 通过实例入门Golang * 说说压力测试工具 * 谈谈推荐排序 * 买不起Alfred和Dash怎么办 * 如何抓取汽车之家的车型库 * 使用Mitmproxy分析接口 * 真假百度蜘蛛的甄别 * Laravel专供:实现Schemaless功能
* 登录
* 项目feed
* 评论feed
* WordPress.org
京ICP备19027985号 自豪地采用WordPressDetails
Copyright © 2024 ArchiveBay.com. All rights reserved. Terms of Use | Privacy Policy | DMCA | 2021 | Feedback | Advertising | RSS 2.0