posted @ 2018-07-08 14:32 王清培 阅读 (1380) 评论 (1)编辑 摘要:标签: 上海线下技术交流会 作者:王清培(Plen wang) 沪江Java资深架构师 、营销云平台负责人 上海地区技术线下交流,本次聚会AA制,要的就是热爱技术,交流技术,不是凑热闹。特此留念。 活动日程: 主题:电商平台架构设计 讲解人:王清培 居住地:上海 沪江 Java 架构师 、畅销书作者阅读全文 posted @ 2018-04-16 15:55 王清培 阅读 (853) 评论 (7)编辑 摘要:标签: 花旗金融培训 作者:王清培(Plen wang) 沪江Java资深架构师 、营销云平台负责人 受邀给花旗金融(上海)培训,一直没时间整理,特此留念。 谢谢。阅读全文 posted @ 2018-04-16 15:13 王清培 阅读 (697) 评论 (0)编辑 说到 ___hash table___ 有两个东西是我们经常会碰到的,首先就是 ___hash 碰撞___ 问题,__redis dict__ 是采用链******法来解决,___dictEntry-next___ 就是指向下个冲突 __key__ 的节点。 还有一个经常碰到的就是 __rehash__ 的问题,提到 __rehash__ 我们还是有点担心性能的。那么redis 实现是非常巧妙的,采用 ___惰性渐进式 rehash 算法___ 。阅读全文 posted @ 2018-01-27 09:24 王清培 阅读 (1371) 评论 (0)编辑 redis 为我们提供了 5 种数据类型,基本上我们使用频率最高的就是 string ,而对其他四种数据类型使用的频次稍弱于 string 。 一方面是由于 string 使用起来比较简单,可以方便存储复杂大对象,使用场景比较多。还有一个原因就是由于 redis expire time 只能设置在 key 上,像 list、hash、set、zset 属于集合类型,会管理一组 item,我们无法在这些集合的 item 上设置过期时间,所以使用 expire time 来处理集合的 cache 失效会变得稍微复杂些。但是 string 使用 expire time 来管理过期策略会比较简单,因为它包含的项少。这里说的集合是宽泛的类似集合。 导致我们习惯性的使用 string阅读全文 posted @ 2018-01-21 11:05 王清培 阅读 (3117) 评论 (1)编辑 最近大半年内有过两次负责性能压测的一些工作。一件事情做了一次可能还无法总结出一些东西,两次过后还是能发现一些共性问题,所以总结下性能压测的一般性实践。但是问题肯定不止这些,还有更多深层次的问题等着发现,等我们遇到了在逐个解决再来总结分享。 做性能压测的原因就不多说了,一般两个时间点是必须要做的,大促前、新系统上线。压测都是为了系统在线上的处理能力和稳定性维持在一个标准范围内,做到心中有数。阅读全文 posted @ 2017-12-02 09:51 王清培 阅读 (4135) 评论 (3)编辑 [置顶] spring rest 容易被忽视的后端服务 chunked 性能问题 在之前的一次性能压测的时候我们发现一个细节问题,我们使用 __spring boot__ 创建的 __web rest__ 项目,使用默认 __spring mvc__ 作为 __web rest__ 框架。 这在使用上没有太大问题,但是有一个影响性能的细节问题被发现了,说实话这个问题很难被发现。阅读全文 posted @ 2017-11-26 12:29 王清培 阅读 (1437) 评论 (2)编辑 最近一段时间都在忙着转java项目最后的冲刺,前期的coding翻代码、debug、fixbug都逐渐收尾,进入上线前的性能压测。 虽然不是大促前的性能压测要求,但是为了安全起见,需要摸个底心里有个数。 毕竟这次转java的服务都是集团核心公共服务(主要是订单域服务)。(等我们顺利上线了,我再来好好总结下其中的坎坷和壮举。) 废话不多说了,直接进入主题。 由于这次压测主要重点是关注正向的两个核心订单服务,下单服务、查单服务。查单服务初步压测下来问题不大,主要是db的索引和cache的问题。 下单服务有两个核心接口,预订单查询、创建订单。预订单查询主要是订单的前置状态的结算页汇总计算(不仅是结算页),不落具体订单,如,各阅读全文 |