随笔分类 - Java
摘要:当业务量快速增长的时候,业务保障平台就要应运而生,预判问题发出告警,越快越好,从宏观到微观一路下钻响应越快越好,尤其是交易量暴涨的高峰时段。怎么做到?看思源的现身说法
阅读全文
摘要:Rotter 是禧云自主研发的跨机房Redis双向同步解决方案(下文简称为方案),具有零侵入、高吞吐量、低延时、高堆积能力等特点。当前版本支持Sentinel模式和单点模式Redis架构。
阅读全文
摘要:如果OKHTTP第一次出现SocketTimeoutException,后续即使网络已经恢复正常,请求也始终返回SocketTimeoutException。
阅读全文
摘要:这是去年的RCA报告。mysql-connector-java-5.1.27 之前的版本里,CancelTask 会大量累积,从而严重影响 JVM 内存,最终引发 FullGC。之后的 mysql-connector-java 里,CancelTask 已经不采用全局的 Timer 任务池了。测试证明,频繁的大数据查询场景下,mysql-5.1.34 驱动的性能处理远优于 mysql-5.0.7 驱动。
阅读全文
摘要:Summoner 是基于 MySQL+Redis+Zookeeper 的分布式并行计算调度和管理系统。Summoner 是 JobCenter 的延伸和有益补充,它们各自有各自的应用场景。我们还会借鉴 mesos 的先进理念,进一步提升 Summoner 的集群调度能力。
阅读全文
摘要:四个解读:click 事件还是 tap 事件?Zepto 的 show/hide 有时不靠谱。Android 下的跨域问题。pushState 调用失败也属于跨域问题。
阅读全文
摘要:如本文所示,在没有部门经理、研发经理、工程师的帮助下,我自己就能从宏观看到微观,并最终明确某个性能瓶颈的 Root Cause(当然还不够接触本质)。
阅读全文
摘要:电商系统的分布式缓存一般是 redis 和 memcached 集群,每一个节点上会起很多实例,因为一个业务类型对应于一个端口,拆分得很清楚。既然节点很多,端口很多,业务也在变化,随时都有变动,如何管理呢?
阅读全文
摘要:标准做法一:OOM触发HeadpDump;标准做法二:系统负载高触发ThreadDump;可选做法三:年老代使用率高触发HeapDump;标准做法四:默认开启GC打印。
阅读全文
摘要:当然,也有业务场景绕不开 multiget,那么,一是按照 facebook 所说,此时需要的是更多的 CPU,把缓存数据复制一份到另一个 memcache 集群上,一个集群负责读一半的 keys;二是按照火丁所说,最好保证批量查的这批键值都在同一个 mc node 上。
阅读全文
摘要:存储介质、WebServer和中间件们的那些默认参数和超时设置总结。
阅读全文
摘要:三个小知识点记录。
阅读全文
摘要:现象倒推一:Java Web应用的连接数暴增;现象倒推二:Java应用频繁 fullgc。
阅读全文
摘要:使用 TDA 工具,看到大量 Java Thread State 的第一反应是
阅读全文
摘要:我们先从第一个例子开始分析,然后再列出不同线程状态的含义以及注意事项,最后再补充两个实例。
阅读全文
摘要:那么,spymemcached 是如何实现 Multiget(即getBulk)的?
阅读全文
摘要:spymemcached 中,一个 mc client 与某一个 mc node 之间已建立的 connection 上,
如果执行操作屡屡超时(net.spy.memcached.OperationTimeoutException),
那么,有一个计数器专门记录超时次数(connected或reconnecting就清零)。
当某一个 mc node 的连续超时次数达到一定阈值(如 998 次),
就会……
阅读全文
摘要:如果你没有特意在 spymemcached 的 client bean definition 里配置 useNagleAlgorithm 属性为 True,那么默认 spymemcached 是不启用 Nagle 算法的。
阅读全文
摘要:当线上出现诡异问题,
当你意识到靠现有的日志无法定位问题时,
当现象难以在你的开发环境重现时,
请不要执著于枯坐肉眼看代码,因为:一)不一定是你代码逻辑问题,可能是脏数据造成的,是老业务数据造成的,是分布式环境造成的,是其他子系统造成的;二)线上业务处于不稳定中,条件不允许问题定位无限期。
阅读全文