tomcat配置gzip压缩compressionMinSize选项无效

配置tomcat的gzip压缩功能之后,配置有个compressionMinSize选项,表示压缩响应的最小值,只有当响应报文大小大于这个值的时候才会对报文进行压缩。但是有时候你会发现这个配置并不起作用,貌似只要客户端加了Accept-Encoding: gzip, deflate,响应就是压缩的,无论响应报文体有多大,这是怎么回事呢? 阅读全文

Jline实现java输入自动补全

java的控制台输入是很局限的,我们仅仅可得到它的输入,对于输入的过程是很难操控的,所以当我们想写一个人性化的输入体验的时候,是比较难实现的。Jline是一个用来处理控制台输入的 Java 类库,它很出名,非常强大,也很容易使用,但是好像没有关于它的使用介绍,我把它的简单使用方法总结在此。 阅读全文

cassandra日常维护之nodetool repair

cassandra的根据分区key的操作是很快的,这也是它的优势,但是它的多条件查询是很弱的,特别是如果你有删除操作的话,就更坑爹了。cassandra的删除操作,实际上并不是真的删除,它是执行的插入操作,插入的数据叫做tombstone(墓碑),记录了被删除记录的信息和删除时间。当你根据条件查询的时候,如果它会把满足条件的记录查询出来,包括tombstone。然后过滤掉删除的记录,再把结果返回给你。解决tombstone问题,就是日常周期性的repair数据。 阅读全文

cassandra新版驱动,使用SchemaBuilder进行表的操作

在最新版的驱动cassandra-driver-core-2.1.3.jar中,提供了一种更方便的对表的修改方式。类似于用于增删改查操作的com.datastax.driver.core.querybuilder.QueryBuilder类,它提供了一个com.datastax.driver.core.schemabuilder.SchemaBuilder类用于对表的操作。 阅读全文