随笔分类 -  Java

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