摘要:
概述 在做大数据产品时,经常遇到的一个需求,页面上有一个输入框,可以输入SQL语句,然后获得执行结果。如adhoc。 注:本文局限于Java语言。 调研 Druid 阿里的Druid,开源作者推广时,称其为最强大的,性能最佳的数据库连接池。但是benchmark实验下来,好像不如HikariCP,可 阅读全文
摘要:
概述 全称,Java Visual VM,JDK自带的一款功能强大的监控工具。文件位置:%JAVA_HOME%\bin\jvisualvm.exe,我本机路径C:\Program Files\Java\jdk1.8.0_65\bin\jvisualvm.exe。 双击打开,左侧界面如下: 右侧面板: 阅读全文
摘要:
概述 Java开发者已经事实上离不开Spring。本文尝试总结一下,工作中用到的注解。 Spring 主要有Spring Bean与Spring Web MVC,及其他等3类注解。这种分类不太科学,理解即可。 Spring Bean 常用的Bean的配置元数据:@Lazy,@DependsOn,@S 阅读全文
摘要:
概述 IO模型: 同步阻塞IO同步非阻塞IOIO多路复用异步IO BIO,NIO,AIO,Netty及Redis线程模型 1、BIO,NIO,AIO的区别? 2、什么是阻塞IO以及非阻塞IO? 3、Reactor和Proactor IO设计模式是什么? 4、NIO底层select、poll和epol 阅读全文
摘要:
概述 本文非原创,整理网络资源学习备用。 MySQL 8.0 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能! 注意:从 MySQL 5.7 升级到 MySQL 8.0 仅支持通过使用 in-place 方式进行升级,不支 阅读全文
摘要:
概述 实际开发中,很常见的一种需求,即拦截机器人登陆,增加略微复杂的滑动验证码(相对于静态验证码而言)。 网络上有很多的实现,并且封装成maven可以检索的jar包。 实现 先给出后端的接口: 后端 /** * 校验滑动验证码 */ @RequestMapping("checkcaptcha") p 阅读全文
摘要:
概述 在 Servlet3.0 之前,Servlet 采用 Thread-Per-Request 的方式处理 Http 请求,即每一次请求都是由某一个线程从头到尾负责处理。 如果一个请求需要进行 IO 操作,比如访问数据库、调用第三方服务接口等,那么其所对应的线程将同步地等待 IO 操作完成, 而 阅读全文
摘要:
概述 随着MySQL单表的数据量越来越大,即使有加索引,查询速度也会越来越慢。如果历史数据无用,可以使用硬删除,但即使把这些数据删除,但底层的数据文件并没有变小。面对这类问题,最有效的方法就是在使用分区表。最常见就是按照时间进行分区,可以非常高效的进行历史数据的清理。 MySQL有一种早期的简单的分 阅读全文
摘要:
概述 作用:用于抑制编译器产生警告信息,即IDEA里面的黄色代码块。 抑制单类型的警告: @SuppressWarnings("unchecked") public void add(String item) { List items = new ArrayList(); items.add(ite 阅读全文
摘要:
概述 项目使用到 impala/hive 查询引擎,ELK记录每天都要抛出差不多一两条报错信息:java.net.SocketTimeoutException: Read timed out。原因应该是SQL比较复杂,查询超时。故而可以考虑设置超时时间。 参考SocketTimeoutExcepti 阅读全文