聊聊hikari连接池的isAllowPoolSuspension

2018-01-31
阅读 9 分钟
4.4k
当没有设置的allow-pool-suspension=true时候,抛出java.lang.IllegalStateException: HikariPool-1 - is not suspendable

springboot2的hikari数据库连接池默认配置

2018-01-30
阅读 16 分钟
41.2k
Spring-Boot-2.0.0-M1版本将默认的数据库连接池从tomcat jdbc pool改为了hikari,这里主要研究下hikari的默认配置

聊聊spring boot tomcat jdbc pool的属性绑定

2018-01-29
阅读 20 分钟
7.7k
使用如上配置,最后发现initial-size,max-active,max-idle,min-idle等配置均无效,生成的tomcat jdbc datasource还是使用的默认的配置

[case4]聊聊jdbc的大数据量读写相关异常的防御措施

2018-01-28
阅读 4 分钟
4.6k
对于普通的功能,分页操作是必须的,也是解决这个问题最简单的方法,在相关功能实现的时候,要对生产的数据量进行提前预估,确定好相应的分页数据量。

聊聊jpa的batch操作的实现

2018-01-28
阅读 31 分钟
8.7k
hibernate-core-5.0.12.Final-sources.jar!/org/hibernate/internal/SessionImpl.java

聊聊jdbc的batch操作

2018-01-28
阅读 4 分钟
8.7k
statement的batch操作,可以批量进行insert或update操作,提升操作性能,特别是在大数据量的insert或update的时候。

聊聊tomcat jdbc pool的默认参数及poolSweeper

2018-01-27
阅读 17 分钟
7k
序 本文主要研究一下tomcat jdbc pool的默认参数及poolSweeper tomcat jdbc pool 参数默认值 initialSize = 10(默认值) maxActive=100(默认值) maxIdle=100(默认值) minIdle=10(默认值) maxWait=30000(默认值) validationQueryTimeout=-1(默认值) testOnBorrow=false(默认值) testOnReturn=false(默认值) testWhileIdel=...

聊聊pg jdbc statement的maxRows参数

2018-01-26
阅读 9 分钟
4k
postgresql-9.4.1212.jre7-sources.jar!/org/postgresql/core/v3/QueryExecutorImpl.java

聊聊mysql jdbc的queryTimeout及next方法

2018-01-25
阅读 25 分钟
5.7k
mysql-connector-java-5.1.43-sources.jar!/com/mysql/jdbc/PreparedStatement.java

聊聊pg jdbc的queryTimeout及next方法

2018-01-24
阅读 12 分钟
5.1k
ostgresql-9.4.1212.jre7-sources.jar!/org/postgresql/jdbc/PgStatement.java

聊聊jdbc statement的fetchSize

2018-01-23
阅读 10 分钟
6.9k
这里以postgres jdbc driver为例,主要是因为postgres的jdbc driver有公开源码,而且命名比较规范。之前看oracle jdbc,由于没有源码,反编译出来一大堆var1,var2等的变量命名,非常晦涩。默认情况下pgjdbc driver会一次性拉取所有结果集,也就是在executeQuery的时候。对于大数据量的查询来说,非常容易造成OOM。这种...

聊聊jdbc socketTimeout的设置

2018-01-22
阅读 8 分钟
34.1k
序 本文主要介绍下jdbc的socket timeout的设置 jdbc timeout类别 主要有如下几个类别 transaction timeout 设置的是一个事务的执行时间,里头可能包含多个statement statement timeout(也相当于result set fetch timeout) 设置的是一个statement的执行超时时间,即driver等待statement执行完成,接收到数据的超时时间(注...

[case3]聊聊系统设计中的trade-off

2018-01-21
阅读 1 分钟
5.8k
trade-off翻译过来大致是折中的意思,也就是说系统设计通常牵扯的点比较多,有的设计方案这个方面比较好,但是又有其他缺点,没有十全十美的方案,只是在特定的上下文,特定的约束条件下,权衡选取比较合适的方案。但是一旦这个上下文或约束条件随着业务变化,基础设施变化等等,原来的折中的方案可能也就不合适了。于是...

spring 5 webclient使用指南

2018-01-20
阅读 8 分钟
15.2k
之前写了一篇restTemplate使用实例,由于spring 5全面引入reactive,同时也有了restTemplate的reactive版webclient,本文就来对应展示下webclient的基本使用。

使用SseEmitter不断向网页输出结果

2018-01-19
阅读 4 分钟
12.9k
之前写过一篇文章:springmvc不断输出文本到网页,采用的是对response不断进行write和flush实现的。在spring 4.2版本的时候提供了一个SseEmitter可以直接用来实现这个功能。

聊聊reactive streams的tranform操作

2018-01-18
阅读 8 分钟
3.7k
序 本文主要展示一下reactive streams的一些transform操作 mergeWith {代码...} 输出实例 {代码...} 可以发现,他们是交叉合并的。 concatWith {代码...} 输出 {代码...} 可以发现concatWith只是连接两个flux的数据,并不是按emit的顺序交叉来 zipWith {代码...} 输出如下 {代码...} 可以发现flux1相比flux2多余的数据没...

聊聊reactive streams的processors

2018-01-17
阅读 18 分钟
5.9k
processors既是Publisher也是Subscriber。在project reactor中processor有诸多实现,他们的分类大致如下:

聊聊reactive streams的parallel flux

2018-01-16
阅读 2 分钟
6.8k
序 本文主要研究下reactive streams的flux的parallel运行方式. 目的 在一些涉及IO操作,比如读取文件,访问数据库等,通常建议使用异步线程以parallel模式运行,以提升性能。 实例 {代码...} 部分输出 {代码...} 小结 parallel来指定线程池线程个数 runOn启动parallel flux sequential将异步线程池执行结果汇集成一个str...

聊聊reactive streams的schedulers

2018-01-15
阅读 11 分钟
4.8k
序 本文主要研究一下reactive streams的schedulers 背景 默认情况下Mono以及Flux都在主线程上运行,有时候可能会阻塞主线程,可以通过设定schedulers让其在其他线程运行。 原始输出 没有使用publishOn及subscribeOn时输出如下 {代码...} publishOn(给subscriber配置线程) {代码...} 输出 {代码...} 可以发现,配置publis...

[case2]记一个nginx host not found异常

2018-01-14
阅读 1 分钟
7.1k
序 本文主要记录一下nginx的host not found异常 背景 某个内部域名,在A,B机器都可以,但是在C机器解析不了,nginx启动报错 {代码...} resolver 怎么办了,这下nginx的resolver指定就派上用场了。在A,B机器上查看他们的dns {代码...} 配置nginx dns {代码...} 当然也可以根据情况将resolver放在server模块底下。 doc res...

聊聊reactive streams的backpressure

2018-01-14
阅读 10 分钟
3.1k
传统的list streams不是异步的,好比如一批500件的半成品,得在A环节都处理完,才能下一个环节B,而reactive streams之所以成为reactive,就好比如这批500件的半成品,A环节每处理完一件就可以立即推往下个环节B处理,源源不断,而不是等所有的半成品都在A环节处理再推往B环节。典型的活生生的一个生产流水线的例子。

聊聊reactive streams publisher的doOn方法

2018-01-13
阅读 9 分钟
6.3k
这里以Flux为例reactor-core-3.1.2.RELEASE-sources.jar!/reactor/core/publisher/Flux.java

聊聊reactive streams的Mono及Flux

2018-01-12
阅读 8 分钟
13.6k
reactive-streams-1.0.1-sources.jar!/org/reactivestreams/Publisher.java

reactive streams与观察者模式

2018-01-11
阅读 3 分钟
3.8k
java里头的iterator是以pull模型,即订阅者使用next去拉取下一个数据;而reactive streams则是以push模型为主,订阅者调用subscribe方法订阅,发布者调用订阅者的onNext通知订阅者新消息。

nginx的port_in_redirect配置

2018-01-10
阅读 1 分钟
15.8k
序 本文主要讲解下port_in_redirect的实际用途。 场景 有一个80端口的nginx,要转发一个路径到另一个8080端口的nginx,配置如下 {代码...} 另外一个nginx的配置如下 {代码...} html目录里头有个public目录,public目录里头有share以及webview目录,存放各个子模块的静态资源。 问题 这样配置了之后,通过demoapp.com.cn/...

使用mongo shell远程连接数据库

2018-01-09
阅读 3 分钟
4.9k
序 本文主要介绍一下如何使用mongo shell连接远程数据库 install {代码...} 这个里头的bin就包含了mongo shell {代码...} --password后面不传参数,则会在命令行提示输入 查看空间占用 {代码...} db.stats(1073741824);以G为单位db.stats(1024)以kb为单位 查看集合 {代码...} 查询 {代码...} help {代码...} doc mongo Sh...

java8 parallelStream性能测试

2018-01-08
阅读 2 分钟
8.8k
序 本文主要研究下parallelStream的性能。 测试1 {代码...} parallelStream线程数 默认是Runtime.getRuntime().availableProcessors() - 1,这里为7 运行结果 {代码...} 测试2 将数据data改为30,同时sleep改为100 {代码...} 可以发现sleep越长,parallelStream优势越明显。 小结 parallelStream在阻塞场景下优势更明显...

[case1]记一次spring schedule异常

2018-01-07
阅读 13 分钟
8.1k
序 本文主要记录一下spring schedule调度异常。 相关背景 调度配置 {代码...} 问题 从某一天开始这个调度没有执行 排查 查看日志 查看了下日志,没有抛异常 查看系统状态 查了那个时间点的系统指标,没啥异常,附近有个young gc,不过也就80ms jstack {代码...} 初步看来线程堆栈,没看到有啥死锁信息 假设 一开始有点怀...

nginx lua api解读

2018-01-07
阅读 4 分钟
10.4k
序 本文主要解读下nginx lua module的主要方法和api。 ngx_lua运行阶段 initialization phase init_by_lua 用在http模块,常用于全局变量的申请 init_worker_by_lua 在每个nginx worker进程启动时调用指定的lua代码 rewrite / access phase set_by_lua: 设置一个变量,计算变量供后续使用 rewrite_by_lua 可替代HttpRewr...

nginx rewrite配置解读

2018-01-06
阅读 3 分钟
2.9k
序 本文主要解析一下ngx_http_rewrite_module中的rewrite相关配置。 directives 名称 默认配置 作用域 官方说明 中文解读 模块 break 无 server, location, if Stops processing the current set of ngx_http_rewrite_module directives. 中断当前的重写 ngx_http_rewrite_module if 无 server, location The specified ...