Fork me on GitHub
听雨轩
生命易破碎,梦想只争朝夕!
摘要: 布隆过滤器介绍和应用 阅读全文
posted @ 2018-03-30 12:05 流水殇 阅读(338) 评论(0) 推荐(0) 编辑
摘要: 最近研究了一下java9的新特性,也看完了《Modularity Programming in Java 9》,有一些收获写博客记录一下。 1、java9初探 阅读全文
posted @ 2018-03-09 13:04 流水殇 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 我的个人博客开通啦,以后博客都将发表在这里: http://www.geetry.com 阅读全文
posted @ 2018-01-16 09:18 流水殇 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 在SASS的大潮流下,相信依然存在很多使用一个数据库为多个租户提供服务的场景,这个情况下一般是多个租户共用同一套表通过sql语句级别来隔离不同租户的资源,比如设置一个租户标识字段,每次查询的时候在后面附加一个筛选条件:TenantId=xxx。这样能低代价、简单地实现多租户服务,但是每次执行sql的时候需要附加字段隔离,否则会出现数据错乱。此隔离过程应该自动标识完成,所以我今天借助于Mybatis... 阅读全文
posted @ 2017-12-23 16:58 流水殇 阅读(10299) 评论(3) 推荐(1) 编辑
摘要: 工作中有遇到需要获取上传的Excel文件的列明、最大行数、大小等元数据信息。通常做法是通过Apache的POI工具加载文件然后再读取行列进行处理。这种方法很大的弊端就是需要把excel文件加载到内存,如果遇到大的文件,内存暴增,很容易出现OOM。为了解决这个问题,我研究了excel文件的格式,写了一工具类来自己解析和获取这些信息。一、excel文件格式解析其实xls、xlsx格式的文件其实就是一个... 阅读全文
posted @ 2017-12-20 15:46 流水殇 阅读(2783) 评论(0) 推荐(0) 编辑
摘要: 在SpringBoot+Shiro实现安全框架的时候,自定义扩展了一些Filter,并注册到ShiroFilter,但是运行的时候发现总是在ShiroFilter之前就进入了自定义Filter,结果当然是不对的。 ... 阅读全文
posted @ 2017-12-13 16:59 流水殇 阅读(15341) 评论(0) 推荐(0) 编辑
摘要: 工作中涉及到了不同服务器并发获取Token的需求,但是后一次获取会覆盖前一次获取的Token,因此需要对获取Token这一操作做一次分布式加锁。这次我使用redis来解决这个问题,首先提供一个加锁的类: import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.dao.DataAccessE... 阅读全文
posted @ 2017-05-10 10:53 流水殇 阅读(5017) 评论(0) 推荐(0) 编辑
摘要: 问题描述:Caused by: javax.management.InstanceAlreadyExistsException: com.alibaba.druid.pool:name=primaryDataSource,type=DruidDataSource 之前以为是Druid的问题,后面发现是spring注册MBean的问题,原因很简单:同一个domain里面的MBean要求name唯一... 阅读全文
posted @ 2017-05-10 10:38 流水殇 阅读(11349) 评论(1) 推荐(0) 编辑
摘要: 在用tomcat启动一个web项目(SpringBoot)的时候报错: getOutputStream() has alerady been called for this response 但是如果直接运行Main函数启动确是正常的(使用的是内嵌的tomcat) 经过排查发现是tomcat的路径问题:该tomcat的home的路径中有空格。 把tomcat放到D盘根目录问题解决。 阅读全文
posted @ 2017-03-23 14:55 流水殇 阅读(765) 评论(0) 推荐(0) 编辑
摘要: 阿里云上弄了一个tomcat,经常半夜发送崩溃,查看日志发现这个东西,查阅资料发现是Tomcat的header缓冲区大小不够,只需要在server.xml中增加maxHttpHeaderSize字段即可:如: 阅读全文
posted @ 2017-03-04 14:30 流水殇 阅读(69230) 评论(2) 推荐(0) 编辑
摘要: 今天在IE8测试文件上传的时候发现总是提示下载,原因是上传接口返回的是json,通过以下修改就可以保证返回是json并且不会出现下载的情况: What is the exact difference between content-type: text/json and application/js 阅读全文
posted @ 2017-02-15 19:00 流水殇 阅读(2246) 评论(0) 推荐(0) 编辑
摘要: 本节我将向大家介绍如何运行与调试YayCrawler。该框架是采用SpringBoot开发的,所以可以通过java –jar xxxx.jar的方式运行,也可以部署在tomcat等容器中运行。 首先让我们介绍一下运行环境: 1、jdk8 2、安装mysql数据库,用作存储解析规则等数据,需要创建一个 阅读全文
posted @ 2016-08-08 23:20 流水殇 阅读(7748) 评论(1) 推荐(3) 编辑
摘要: 本节我将向大家介绍一下YayCrawler的核心-页面的抽取规则定义,这也是YayCrawler能够做到通用的主要原因之一。如果我要爬去不同的网站的数据,尽管他们的网站采用的开发技术不同、页面的结构不同,但是我只要针对不同的网站定义不同的抽取规则即可,不用再对每个网站专门开发一个爬虫。 首先让我来解 阅读全文
posted @ 2016-08-06 21:57 流水殇 阅读(5798) 评论(3) 推荐(0) 编辑
摘要: 各位好!从今天起,我将用几个篇幅的文字向大家介绍一下我的一个开源作品——YayCrawler,其在GitHub上的网址是:https://github.com/liushuishang/YayCrawler,欢迎大家关注和反馈。 YayCrawler是一个基于WebMagic开发的分布式通用爬虫框架,开发语言是Java。我们知道目前爬虫框架很多,有简单的,也有复杂的,有轻量型的,也有重量型的。您... 阅读全文
posted @ 2016-08-06 15:21 流水殇 阅读(7225) 评论(15) 推荐(12) 编辑
摘要: 这一节我将向大家介绍一下YayCrawler的运行机制,首先允许我上一张图: 首先各个组件的启动顺序建议是Master、Worker、Admin,其实不按这个顺序也没关系,我们为了讲解方便假定是这个启动顺序。 一、Master端分析 Master启动后会连接Redis查询任务队列状态,Master维 阅读全文
posted @ 2016-08-06 15:15 流水殇 阅读(3357) 评论(0) 推荐(0) 编辑
摘要: 有个常见的场景:删除用户的时候需要先删除用户的外键关联数据,否则会触发规则报错。 解决办法不外乎有三个:1、多条sql分批执行;2、存储过程或函数调用;3、sql批量执行。 今天我要说的是MyBatis中如何一次执行多条语句(使用mysql数据库)。 1、修改数据库连接参数加上allowMultiQ 阅读全文
posted @ 2016-04-29 09:36 流水殇 阅读(86161) 评论(11) 推荐(13) 编辑
摘要: 最近要实现一个Java调用一个复杂shell命令实现数据同步,该命令有管道重定向的语句,结果硬是执行不成功,而且也没异常报出。经过一段时间的折腾终于解决了此问题,权当做备忘记录下来(重点在红色框中的“sh”,“-c“再加自己的命令): 阅读全文
posted @ 2016-03-08 17:19 流水殇 阅读(13352) 评论(2) 推荐(0) 编辑
摘要: Spring提供了加载Properties文件的工具类:org.springframework.beans.factory.config.PropertyPlaceholderConfigurer。 在Spring容器启动时,使用内置bean对属性文件信息进行加载,在bean.xml中添加如下: /WEB-INF/configInfo.prop... 阅读全文
posted @ 2016-03-02 22:48 流水殇 阅读(2459) 评论(0) 推荐(0) 编辑
摘要: 把Hadoop源码导入IDEA中后,其中有个ClientNamenodeProtocolProtos文件代码高达82997行,IDEA直接就不把它当java类看了,报file size exceeds configured limit错误。 解决办法如下: 你可以尝试修改intellij IDE安装目录下的bin/idea.properties, 将其中的idea.max.intellisense... 阅读全文
posted @ 2016-02-24 22:00 流水殇 阅读(16536) 评论(0) 推荐(0) 编辑
摘要: 原文:http://www.cnblogs.com/zcy_soft/p/3566208.html java 世界里有许多实现日志功能的工具,最早得到广泛使用的是 log4j,许多应用程序的日志部分都交给了 log4j,不过作为组件开发者,他们希望自己的组件不要紧紧依赖某一个工具,毕竟在同一个时候还有很多其他很多日志工具,假如一个应用程序用到了两个组件,恰好两个组件使用不同的日志工具,那么应用程序... 阅读全文
posted @ 2016-02-16 22:34 流水殇 阅读(558) 评论(0) 推荐(0) 编辑