摘要: 可以毫不夸张地说,这篇文章介绍的 Spring/SpringBoot 常用注解基本已经涵盖你工作中遇到的大部分常用的场景。对于每一个注解我都说了具体用法,掌握搞懂,使用 SpringBoot 来开发项目基本没啥大问题了! 阅读全文
posted @ 2020-05-31 19:51 狼爷 阅读(4401) 评论(0) 推荐(1)
摘要: 索引的结构:B+树。B+树中的B不是代表二叉(binary),而是代表平衡(balance),因为B+树是从最早的平衡二叉树演化而来,但是B+树不是一个二叉树。 索引分类:聚集索引、非聚集索引。索引的使用。索引优化:explain、Cardinality值、MySQL查询优化器。 阅读全文
posted @ 2020-05-26 23:20 狼爷 阅读(376) 评论(0) 推荐(0)
摘要: 随着业务不断发展,用户量不断增加,系统负载越来越高。为了解决系统负载问题,我们是不是直接大量增加机器就可以了? 同时,公司业务开展需要,可能需要开展各种营销活动,目前系统是否能够支持那么多用户也是个未知数,如何解决呢? 答案就是今天要讲的压测。 只做单系统压测是不够的,因为在活动开始的瞬间,各系统都面临自身服务的巨大的压力,而系统之间是有互相依赖关系的,单机压测没有考虑到依赖环节压力都比较大的情况。一个系统出现故障,故障会在链路流转过程中层层累加,会造成无法评估的影响。 为什么选择线上环境做全链路压测 通常情况下公司不可能按照线上环境架构与性能要求1比1的搭建一套离线环境 阅读全文
posted @ 2020-05-24 22:15 狼爷 阅读(926) 评论(0) 推荐(0)
摘要: What 可扩展性指系统为了应对将来需求变化而提供的一种扩展能力,当有新的需求出现时,系统不需要或者仅需要少量修改就可以支持,无须整个系统重构或者重建。 Why 伴随着业务的发展,能够快速响应业务变化,并最大程度降低对现有系统的影响,是设计可扩展性好架构的主要目的。 Theory 设计具备良好可扩展 阅读全文
posted @ 2020-05-16 21:51 狼爷 阅读(3749) 评论(0) 推荐(0)
摘要: 常见问题 有时由于硬件设备的限制,单纯软件上的性能优化已经无法提升系统性能? 这时需要改造系统的架构体系,提升系统的扩展能力,组合多个只具备低处理能力的硬件设备,从而达到一个具有高处理能力的系统。 可伸缩性 当增加计算机资源时(例如CPU、内存、存储容量或I/O带宽),程序的吞吐量或者处理能力能相应 阅读全文
posted @ 2020-05-16 21:49 狼爷 阅读(369) 评论(0) 推荐(0)
摘要: ThreadLocal 类似局部变量,解决了单个线程维护自己线程内的变量值(存、取、删),让线程之间的数据进行隔离; ThreadLocal源码解析; 不调用remove会内存溢出吗?答案大部分场景下是不会的,少数场景才会。 阅读全文
posted @ 2020-05-16 16:32 狼爷 阅读(345) 评论(0) 推荐(1)
摘要: Java线程池的原理,主要参数的作用。ThreadPoolExecutor内部有重要的成员变量ctl,类型是AtomicInteger,低29位表示线程池中线程数,通过高3位表示线程池的运行状态。addWorker的逻辑,runWorker的逻辑 阅读全文
posted @ 2019-07-14 00:04 狼爷 阅读(1741) 评论(0) 推荐(0)
摘要: 描述Object wait()/notify()跟Condition await()/signal()的基本用法,三连问:解释为什么wait() 要放在while里面?为什么wait()方法放在Object对象中?为什么wait()必须在同步方法/代码块中调用?以及这两种通知/等待机制的区别 阅读全文
posted @ 2019-05-11 15:31 狼爷 阅读(3077) 评论(0) 推荐(0)
摘要: HTTP请求中,如果是get请求,那么表单参数以key1=value1&key2=value2的形式附到url的后面,如果是post请求,那么表单参数是在请求体中,也是以key1=value1&key2=value2的形式在请求体中。 post请求的Content-Type为application/x-www-form-urlencoded,参数是在请求体中,即上面请求中的Form Data。后端servlet可以通过`request.getParameter("keyword")`获取数据 Content-Type为text/plain;charset=UTF-8,则请求表单参数在RequestPayload中,后端servlet可以通过`org.apache.commons.io.IOUtils.toString(request.getReader())`获取数据。 阅读全文
posted @ 2017-06-06 19:22 狼爷 阅读(265) 评论(0) 推荐(0)
摘要: 介绍 GitBook是一个基于Node.js的命令行工具,可使用 Github/Git和Markdown来制作精美的电子书,GitBook 并非关 Git的教程。 导出格式有PDF、HTML等,需要添加相应插件。 官网:https://www.gitbook.com 安装 安装npm 从网站 htt 阅读全文
posted @ 2017-05-29 00:34 狼爷 阅读(2488) 评论(0) 推荐(0)