不清不慎的博客

java大数据开发工程师、数据挖掘、人工智能、区块链兴趣爱好者。 Github地址:https://github.com/ljcan...

Spring Security实现RememberMe功能以及原理探究

在大多数网站中,都会实现RememberMe这个功能,方便用户在下一次登录时直接登录,避免再次输入用户名以及密码去登录,下面,主要讲解如何使用Spring Security实现记住我这个功能以及深入源码探究它的原理。 首先,如下图所示为Spring Security实现RememberMe功能的...

2018-04-27 23:00:57

阅读数 2122

评论数 0

使用Redis运维监控工具sentinel进行自动故障转移

在一个集群中,我们经常要考虑它的安全,防止主节点发生宕机,当然,这是无法保障的,不可避免,但是,我们可以做好预防措施,比如在一个集群中,主节点挂掉了,我们要进行迅速转移,将另一台从节点切换为主节点从而预防单点故障,那么,本篇文章将教如何手动进行故障转移,最后使用自动化工具进行自动故障转移。 场景...

2018-04-27 00:56:49

阅读数 860

评论数 0

HBase数据迁移(备份)常见方式总结以及演示(集成MapReduce)

HBase数据迁移 通常我们的数据来自logs以及RDBMS中,在有些时候,我们需要进行数据迁移,比如,将RDBMS中数据进行备份迁移到HBase中存储或者将一些文件迁移到HBase中,常见的HBase的数据迁移有以上几种方式: 使用Put API来插入数据 使用Bulk Load方式迁移海...

2018-04-26 19:49:02

阅读数 278

评论数 0

JAVA数据结构跳表(SkipList)的原理以及使用

在JDK并发包中有很多的数据结构,最常用的有链表,哈希表等等,除了这些数据结构之外,还有一种特殊的数据结构跳表,可能大多数人都不太了解,因此,本篇文章主要介绍跳表这一数据结构的原理以及它在JDK内部的使用。 一、什么是跳表? 跳表(SkipList),是一种可以快速查找的数据结...

2018-04-25 20:14:51

阅读数 994

评论数 2

JAVA高并发之锁的优化及源码解读

在现代系统多核的时代,使用多线程明显了地提高了系统的性能,但是在高并发的环境中,激烈的锁竞争对系统的性能带来的严重的影响,因为对于多线程来说,它不仅要维持每一个线程本身的元数据,还要负责线程之间的切换,不断的挂起,唤醒,浪费了大量的时间,因此,有必要探讨一下如何将多线程中锁的优化做到极致,给系统带...

2018-04-24 23:59:11

阅读数 220

评论数 0

JDK并发包源码解析之深度剖析高效读写队列ConcurrentLinkedQueue

在Java的并发包中,存在着许多高效的并发工具类,它优于synchronized关键字,在JDK中提供了一个ConcurrentLinkedQueue工具类实现了高效的并发读写工具类,该工具类具有很高效的性能,因此,本片文章笔者将通过解读ConcurrentLinkedQueue源码的方式探究该数...

2018-04-23 22:27:18

阅读数 135

评论数 0

Spring Security用户认证流程源码详解

上篇文章讲解了Spring Security的基本原理以及如何自定义用户认证逻辑,这篇文章将在上篇的基础上解读Spring Security的源码更清楚的了解它的认证逻辑流程。 本篇文章主要围绕下面几个问题来深入源码: 用户认证流程 认证结果如何在多个请求之间共享 获取认证用户信息 ...

2018-04-21 18:52:55

阅读数 4469

评论数 6

分布式大数据仓库HBase的基本使用以及架构原理详解

当今移动互联网时代,每个人每天都会产生数据,海量数据的存储以及查询使得RDBMS无法满足需求,因此出现了HBase分布式大数据。本文主要介绍的HBase的基本使用以及Hbase的架构原理,使得读者对Hbase有一个更好地认识。 一、HBase介绍 首先,看看官网对于Hbase的...

2018-04-20 23:54:20

阅读数 2324

评论数 0

SpringBoot + WebSocket实现简单消息推送

WebSocket是一种双工通信的网络协议,所谓双工就是浏览器可以给服务器发送消息,服务器也可以向浏览器发送消息,那么,有了HTTP协议,为什么还要使用它呢?假设我们需要每天定时需要服务器给客户端推送消息,那么HTTP协议就做不到主动的发送信息给客户端,而WebSocket则可以实现这一功能,它会...

2018-04-19 11:20:59

阅读数 1628

评论数 0

大数据实时日志收集框架Flume案例之抽取日志文件到HDFS

上节介绍了Flume的作用以及如何使用,本文主要通过一个简单的案例来更好地运用Flume框架。在实际开发中,我们有时需要实时抽取一些文件夹下的文件来分析,比如今天的日志文件需要抽取出来做分析。这时,如何自动实时的抽取每天的日志文件呢?我们可以使用Flume来完成这一项工作。 案例需求:假设需要分...

2018-04-19 00:24:13

阅读数 2728

评论数 0

大数据日志文件实时收集框架Flume介绍及其使用

大数据中,我们经常会将一些日志文件收集分析,比如网站的日志文件等等,我们需要一个工具收集数据并且上传到HDFS,HIVE,HBASE等大数据仓库中,Apache为我们提供了一个很好的文件实时收集框架供我们使用。 一、Flume的介绍 官网的介绍如下: Apache...

2018-04-15 11:13:54

阅读数 2530

评论数 0

SpringSecurity基本原理以及自定义用户认证逻辑

对于网站,安全问题是不容忽视的,在用户登录时我们需要对用户密码进行校验,我们可以自己来编写逻辑,不过Spring Security框架给我提供了一套很强大安全框架,本文是一篇SpringSecurity入门级的文章,主要介绍其基本原理与认证流程以及使用。 Spring Security 1...

2018-04-14 22:26:26

阅读数 3170

评论数 0

SpringBoot拦截机制使用详解

引入场景:当我们在某些情况下需要对客户端发送来的请求进行拦截分析的时候,就需要用到拦截机制,比如,我们需要对一个请求进行计时,又或者需要知道当前请求需要进入哪个控制器,哪一个方法,该请求的参数是什么等等场景下都需要用到拦截机制来处理。下面,我们来讲解一下SpringBoot的几种拦截方式以及如何使...

2018-04-11 00:35:02

阅读数 1767

评论数 0

SpringBoot错误处理机制以及自定义异常处理

上篇文章我们讲解了使用Hibernate Validation来校验数据,当校验完数据后,如果发生错误我们需要给客户返回一个错误信息,因此这节我们来讲解一下SpringBoot默认的错误处理机制以及如何自定义异常来处理请求错误。 一、SpringBoot默认的错误处理机制 我们在发送一个请...

2018-04-10 12:58:02

阅读数 11790

评论数 1

Hibernate Validation校验注解详解

在前后端传递数据的时候,往往后端需要校验传递数据的格式,比如用户名的格式,密码是否为空。我们可以在service层编写代码判断,但是当我们在多处需要校验传递来的数据的时候,就会出现大量重复的代码,一旦出错,就需要多处修改,非常麻烦,而且这样我们的软件将会非常槽糕。这时,我们可以用Hibernate...

2018-04-10 00:41:00

阅读数 1082

评论数 0

Hive文件存储格式查询性能的比较

一、Hive的文件存储格式 Hive总共支持以下几种文件存储格式: Text File SequenceFile RCFile Avro Files ORC Files Parquet Custom INPUTFORMAT and OUTPUTFORMAT 这里,我们主要比较Text Fi...

2018-04-09 21:50:37

阅读数 840

评论数 0

【JAVA并发包源码分析】循环栅栏:CyclicBarrier

一、认识CyclicBarrier 对于CyclicBarrier大多数人感到陌生,其实CyclicBarrier是一种多线程并发控制使用工具,和CountDownLatch非常类似,实现线程之间的计数等待,也就是说一个线程或者多个线程等待其他线程完成任务,不过比CountDowwnLatch复...

2018-04-07 22:39:18

阅读数 185

评论数 0

Restful API注解之@PathVariable和@JsonView详解

**对于restful API的使用可以查看我之前的文章SpringMVC开发restful API查询请求 本文将在restful API的基础上介绍@PathVariable和@JsonView注解的详细使用方式。** 一、@PathVariable注解的使用 在restful AP...

2018-04-07 15:20:36

阅读数 722

评论数 0

SpringMvc分页查询信息

在信息量较大的时候一般都需要分页查询,本文将展示如何实现分页查询算法。 1.首先建立一个实体类: package cn.shinelon.vo; /** * 书类 * @author Shinelon * */ public class Book { private int...

2018-04-07 13:58:02

阅读数 421

评论数 0

JDK源码笔记之Integer深度解析以及并发下错误的加锁方式【踩坑笔记】

对于Java的数据类型Integer,大多人认为不就很简单的一个数据类型吗?是的,我以前也不在意,感觉关于integer没什么可说,但是不深入源码你永远不知道它给你留下的坑。 一、谈谈integer留下的坑 首先我们来看一段代码。 package cn.shinelon.jvm; pu...

2018-04-05 18:59:27

阅读数 257

评论数 4

提示
确定要删除当前文章?
取消 删除