04 2016 档案
摘要:查看线上日志,遇到一个诡异的问题,就是系统大量空指针的异常,但是没有打印堆栈,导致不方便定位问题。 经过一番代码调试,确定并非程序代码问题。没有线索之后,从Google找到了答案:是因为在server模式下运行的时候,有一个默认选项是 XX:+OmitStackTraceInFastThrow,这个
阅读全文
摘要:Reactor模式,I/O多路复用,NIO,EPOLL,水平触发模式
阅读全文
摘要:背景 最近写了一个定时任务,期望是同一时间只有一台机器运行即可。因为是应用是在集群环境下跑的,所以需要自己实现类一个简陋的Redis单机锁。 原理 主要是使用了Redis的SET NX特性,成功设置的那个客户端则被认为拿到了锁,没有设置成功的其他客户单则认为没有拿到锁。 在分布式环境下使用锁是挺危险
阅读全文
摘要:Stream:parallel乱序 Java 8 stream流为处理集合时非常方便。遇到的一个坑是为了提高在多核cpu下的性能,尝试了parallel()。数据源是HashSet的,在做分割的时候发现每次跟串行的结果都不一样。 解决方式: + 后来改为有序的LinkedHashSet再使用para
阅读全文
摘要:为了保护服务器不被刷流量,或者业务方面的一些限制,需要做一些限速措施。 一、http 请求并发连接数模块:ngx_http_limit_conn_module 这个模块可以设置每个定义的变量(比如客户端ip)的并发连接数,比如:某个客户端ip在同一时间内的连接数不能超过某个值。 语法: 1. 定义限
阅读全文
摘要:注:本文参考 源码。 LinkedHashMap是基于HashMap实现的数据结构,与HashMap主要的不同为每个Entry是使用双向链表实现的,并且提供了根据访问顺序进行排序的功能。 LinkedHashMap中的内部类Entry大概如下,可以看到都是基于链表(数据结构意义上的)节点的操作: 当
阅读全文