摘要: 前言 不知道大家有没有遇到过这种情况,某个接口的响应时间会随着请求量的变大而越来越慢,明明CPU已经马力全开了怎么还会越来越慢。又或者是客户端调用http接口,对于客户端来说只是一个入库操作就可以直接返回结果继续处理了,而你还要比较尴尬的拿着传过来的数据做一堆比较耗时的操作,导致这个接口的整体吞吐量 阅读全文
posted @ 2019-10-27 14:28 阿拉巴洞 阅读(1370) 评论(0) 推荐(2) 编辑
摘要: 一、锁的作用 当多线程执行某一业务时(特别是对数据的更新、新增)等操作,可能就会出现多个线程对同一条数据进行修改。其最终的结果一定与你期望的结果“不太一样”,这就与需要一把锁来控制线程排排队了 - java内部为我们提供了解决方案,可以使用synchronized或Lock等方式来实现。 但是在生产 阅读全文
posted @ 2019-02-14 19:46 阿拉巴洞 阅读(397) 评论(0) 推荐(0) 编辑
摘要: 1、查询FEDERATED功能是否开启: show ENGINES; 2、如果状态为NO则需修改my.ini文件,增加一行federated配置: my.ini配置文件的默认路径 C:\ProgramData\MySQL\MySQL Server 5.7。ProgramData为隐藏文件夹,查看时需 阅读全文
posted @ 2018-08-24 17:01 阿拉巴洞 阅读(3037) 评论(0) 推荐(0) 编辑
摘要: 一、Disruptor的简介 Disruptor是由LAMX(欧洲顶级金融公司)设计和开源的大规模、高并发、低延迟的异步处理框架,也可以说他是最快的消息框架(JMS)。整个业务逻辑处理器完全运行在内存中,其LMAX架构可以达到一个线程里每秒处理6百万流水,用1微秒的延迟可以获得100K+吞吐量的爆炸 阅读全文
posted @ 2018-06-29 17:28 阿拉巴洞 阅读(1014) 评论(4) 推荐(4) 编辑
摘要: 一、为什么选择线程池 生产上的Web服务器、数据库服务器、文件服务器的使用场景,大多数都是处理来自一些远程的大量短小的任务。不管请求如何到达服务器,服务器都是在处理这些单个处理时间很短,但是待处理的量很大的数据。这样做是很浪费服务器资源的,因为每当一个请求到达服务器,服务器就会创建一个新的线程,在新 阅读全文
posted @ 2018-06-06 21:12 阿拉巴洞 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 一、NIO Netty框架底层是对NIO的高度封装,所以想要更好的学习Netty之前,应先了解下什么是NIO - NIO是non-blocking的简称,在jdk1.4 里提供的新api,他的他的特性如下: * 为所有的原始类型提供(Buffer)缓存支持,字符集编码解码解决方案。 * Channe 阅读全文
posted @ 2018-05-06 22:27 阿拉巴洞 阅读(786) 评论(0) 推荐(0) 编辑
摘要: 前提: 偶然的机会看到了大神的一篇博客,介绍的是hashCode()方法里为什么要用31这个数字作为生成hashCode的乘数。hashCode我在比较自定义类时曾经用到过 - 由于java默认比较的是类的地址值,每个对象一定是不同的,所以重写了hashCode()和equals()方法 ,这样就会 阅读全文
posted @ 2018-01-27 20:13 阿拉巴洞 阅读(6437) 评论(1) 推荐(3) 编辑
摘要: 某天,我在写代码的时候,无意中点开了 String hashCode 方法。然后大致看了一下 hashCode 的实现,发现并不是很复杂。但是我从源码中发现了一个奇怪的数字,也就是本文的主角31。这个数字居然不是用常量声明的,所以没法从字面意思上推断这个数字的用途。后来带着疑问和好奇心,到网上去找资 阅读全文
posted @ 2018-01-27 18:42 阿拉巴洞 阅读(501) 评论(0) 推荐(0) 编辑
摘要: 大家在Linux系统中配置运行环境时,一定会遇到相关配置文件的修改,虽说在Linux系统中可以使用vi,vim的命令进行文本编辑,但是操作起来还是没有在Windows系统中用的爽,特别是操作大文本量的文件时。Notepad++里提供了一个小插件,可以方便的对Linux里的文件进行文档编辑。 一、插件 阅读全文
posted @ 2018-01-19 22:43 阿拉巴洞 阅读(4915) 评论(0) 推荐(2) 编辑
摘要: 大家在不知道事务这个东西的时候,会不会在自己的某一次报错中“灵机一动”的想到这样一个问题。银行、微信、支付宝在转账的过程中突然报错了,我的钱转过去了,而对方并没有收到我的钱。仔细想一想,那我是不是可以借着这个,来赢取白富美,走向人生巅峰,我先定他一个小目标......,直到在很久以前的某一天,我知道 阅读全文
posted @ 2018-01-18 18:55 阿拉巴洞 阅读(373) 评论(0) 推荐(1) 编辑
摘要: 一个程序员,他写完了代码,在测试环境通过了测试,然后他把它发布到了线上生产环境,但很快就发现在生产环境上出了问题,有潜在的 bug。 事后分析,是生产环境的一些微妙差异,使得这种 bug 场景在线下测试中很难被发现。毕竟想要在测试环境完美的复制生产环境的所有情况也是不太可能的,导致出现了疏漏。对于这 阅读全文
posted @ 2018-01-16 11:29 阿拉巴洞 阅读(260) 评论(0) 推荐(1) 编辑
摘要: 我对敏捷开发是源于10多年前看了一本关于迭代开发的书,从而对迭代开发有了一些兴趣。从那时开始有了迭代开发的概念。随着项目经验的增加迭代的重要性也越发觉得明显。随后进入了提倡敏捷开发的公司,被迫式的接触了许多“敏捷开发”,随着项目经历越来越多,慢慢的就开始有了更新的认识和想法。 但是在接触敏捷开发这个 阅读全文
posted @ 2018-01-16 11:23 阿拉巴洞 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 写代码就是学一门语言然后开始撸代码吗?看完了我的《GoF设计模式》系列文章的同学或者本身已经就是老鸟的同学显然不会这么认为。编程是一项非常严谨的工作!虽然我们自嘲为码农,但是这工作毕竟不是真正的搬砖,我们是软件工程师。编程需要关注的问题太多,不仅仅有语言,还有算法、数据结构、编程技巧、编码风格、设计 阅读全文
posted @ 2018-01-16 11:09 阿拉巴洞 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 前言 最近半年内前前后后也面试了几家公司,有成功的,也有失败的,不过大部分以失败结束;打算把最近面试的一些经验写成一篇文章(当然最近也一直有这个打算),希望能以此文章为转折点,给自己一个警醒,也是给大家一些面试方法的经验吧,当然最希望的,是希望大家从我的面试过程中学到一些东西,能避免我犯过的错误,走 阅读全文
posted @ 2018-01-16 10:44 阿拉巴洞 阅读(261) 评论(1) 推荐(0) 编辑
摘要: 一、Swagger简介 上一篇文章中我们介绍了Spring Boot对Restful的支持,这篇文章我们继续讨论这个话题,不过,我们这里不再讨论Restful API如何实现,而是讨论Restful API文档的维护问题。 在日常的工作中,我们往往需要给前端(WEB端、IOS、Android)或者第 阅读全文
posted @ 2018-01-16 10:25 阿拉巴洞 阅读(6461) 评论(1) 推荐(0) 编辑