背景 线上某集群峰值TPS超过100万/秒左右(主要为写流量,读流量很低),峰值tps几乎已经到达集群上限,同时平均时延也超过100ms,随着读写流量的进一步增加,时延抖动严重影响业务可用性.该集群采用mongodb天然的分片模式架构,数据均衡的分布于各个分片中,添加片键启用分片功能后实现完美的负载均衡.集群每个节点流量监控如下图所示: 从上图可以看出集群流量比较大,峰值已经突破120万/秒,其中delete过期删除的流量不算在总流量里面(delete由主触发删除,但是主上面不会显示,只会在从节…
HashMap在工作中使用非常频繁,其实在JDK1.8的时候新增一些更高阶的用法,熟练使用这些方法可以大大提升开发效率,写出更简洁优美的代码. 1. get方法指定返回默认值(getOrDefault) Map<String, String> map = new HashMap<>(); map.put("key1", "value1"); String value1 = map.getOrDefault("key1",…
1 导读 web 基础研发体系指的是, web 研发中一线工程师所直接操作的技术.工具,以及所属组织架构的总和.在过去提升企业研发效能的讨论中,围绕的主题基本都是——”通过云计算.云存储等方式将底层核心技术封装成基础设施“.而我们在实践中发现,在 互联网渗入到各行各业,业务爆发 企业竞争白热化,对速度和品质要求越来越高 一线工程师队伍越来越庞大,管理成本增高 这样的多重背景下,除了底层核心技术外,一线 web 研发效能的问题也逐渐成为决胜战场的重要因素. 然而在现实中我们看到,因为一线的研发工作…
如何将 iOS 工程打包速度提升十倍以上   过慢的编译速度有非常明显的副作用.一方面,程序员在等待打包的过程中可能会分心,比如刷刷朋友圈,看条新闻等等.这种认知上下文的切换会带来很多隐形的时间浪费.另一方面,大部分 app 都有自己的持续集成工具,如果打包速度太慢, 会影响整个团队的开发进度. 因此,本文会分别讨论日常开发和持续集成这两种场景,分析打包速度慢的瓶颈所在,以及对应的解决方案.利用这些方案,笔者成功的把公司 app 的持续集成时间从 45 min 成功的减少到 9 min,效率提升…
stage3D很强大,但是客户端硬件加速支持有限. 出来的图形锯齿严重,看上去和果冻一样. Stage3d不兼容2d模式. 总的来说,3D很美好,现实很残酷.但是3D有无可比拟的优势:那就是节省90%的带宽和提升无限的显示效果. 本文根据前辈的经验,总结一种在中低模型下,3D显示为2D的技术.颠覆传统吧! 前言——为什么用3D? 在页游界,不要相信3D所谓华丽的效果.至少2014年结束,也不需要去幻想.端游就另当别论. 但是3D只需要一个模型+一个贴图,就完成了所有需要的人物显示.如果用传统序列…
    前言 学习python,官方版本其实足够了.但是如果追求更好的开发体验,耐得住不厌其烦地折腾.那么我可以负责任的告诉你:IPython是我认为的唯一显著好于原版python的工具.   整理了<Python 二三事>:http://pre-sence.com/archives/python-intro   <Python 四五事>:http://pre-sence.com/archives/python-misc 并加入安装IPython部分. 写这篇随笔的原因是:忽然醒悟…
"颠覆传统运维."是 OneAPM CEO 陈旭经常挂在嘴边的一句话.为什么说 AIOps 将颠覆传统运维?如何才能把人工智能和运维管理相结合并落地? 2018年5月,OneAPM 推出了全新的 AIOps 平台 Intelligence Insight(简称 I2)并正式启用 aiops.com 域名作为企业级运维产品的官方网站.I2 是一个面向企业级 IT 运维管理现状,将多年领先的 ITOM 产品研发和实施经验与人工智能技术相结合,服务于 IT 和业务部门的全新智能运维管理平台.…
一位编剧在三天内完成两万字的剧本,而在此之前,他曾拖延了足足半年.一名大四学生用一天半写了8000多字,一鼓作气拿下毕业论文. 有人说:“用了这个方法,我的效率猛增十倍.只用短短两小时,就摧枯拉朽地完成了报告.之前我却因为长久的拖延,白白遭受了那么多压力.真不知道,是该高兴还是难过……” 传说中的“沉浸工作法”,你可能也有所耳闻,可它到底是什么?真的有那么神奇吗? 这是我开发的一种简单易行的短期工作方法.对一些“没有确定开始时间”的任务(例如常规的书面工作)有奇效,特别适合从事创造性工作的人群.…
通过非聚集索引,可以显著提升count(*)查询的性能. 有的人可能会说,这个count(*)能用上索引吗,这个count(*)应该是通过表扫描来一个一个的统计,索引有用吗? 不错,一般的查询,如果用索引查找,也就是用Index Seek了,查询就会很快. 之所以快,是由于查询所需要访问的数据只占整个表的很小一部分,如果访问的数据多了,那反而不如通过表扫描来的更快,因为扫描用的是顺序IO,效率更高,比运用随机IO访问大量数据的效率高很多. 相应的,如果只需要访问少量数据,那么索引查找的效率远高于…
转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/archives/574 我们在上一篇文章中讲解了 Go HTTP 标准库的实现原理,这一次我找到了一个号称比net/http快十倍的Go框架 fasthttp,这次我们再来看看它有哪些优秀的设计值得我们去挖掘. 一个典型的 HTTP 服务应该如图所示: 基于HTTP构建的服务标准模型包括两个端,客户端(Client)和服务端(Server).HTTP 请求从客户端发出,服务端接受到请…