自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

古小龙

着笔不宜一味熟,称心还常三分生。

  • 博客(36)
  • 收藏
  • 关注

原创 ThreadLocal 及其内存泄漏 详解

ThreadLocal 及其内存泄漏 详解前言ThreadLocal是什么?每一个ThreadLocal对象是如何区分的?关于内存泄露的问题:那为什么ThreadLocalMap内Entry的key使用弱引用而不是强引用??ThreadLocal正确的使用方法感谢前言本章用于记录一下ThreadLocal相关的一些理解和分享,本文并非完全原创,只是自己结合前辈们的理解下理解思路记录,方便自己学习巩固,如果你在仔细阅读这篇文章之后感觉有帮助,请不要吝啬点赞关注哦~ThreadLocal是什么?Thre

2020-05-21 11:21:32 325

原创 大数据系列(八)之 Hbase 集群安装

目录一、Hbase 集群规划二、下载安装三、配置Hbase四、启动 hbase一、Hbase 规划master节点:node01RegionServer节点:node02、node03二、下载安装2.1下载并解压,我下载的是 hbase-2.1.8-bin.tar.gz(需要对应hadoop版本下载)Hbase下载:https://mirrors.tun...

2019-12-12 11:40:28 338

原创 SparkSQL网站日志内容分析+spark-streaming用户实时点击统计,手动管理Offset到ZooKeeper

目录练习环境:本地测试方法:1.Spark离线批处理2.Kafka + SparkStreaming + Redis3.Kafka + SparkStreaming + mysql4.Spark Streaming 中实现 Exactly-Once 语义 5.Kafka + SparkStreaming手动管理 offset6.Spark SQL 网...

2019-11-28 11:28:22 518

原创 大数据系列(七)之 kafka集群安装及Java实现kafak生产者、消费者

目录1.集群规划2.下载kafka安装包3.安装kafka4.创建软连接5.添加到环境变量6.修改kafka配置文件 server.properties7.在安装目录下创建kafka-logs文件夹(本例中,安装目录是:/usr/local/kafka)8.将配置好的kafka安装包拷贝到其他节点,并创建软连接9.分别修改其他节点的配置文件 server.pro...

2019-11-14 08:16:37 369

原创 大数据系列(六)之 Spark 分布式计算框架

目录一、Spark是什么?二、为什么要用Spark?三、Spark特点四、基本概念及RDD、checkpoint介绍4.1 Spark核心概念RDD详解4.2 checkpoint(检查点)详解五、Spark架构设计六、Spark核心组件七、Spark运行模式八、小结本文仅用于学习交流使用,感谢大家的阅读!一、Spark是什么?Spark是用于大...

2019-10-18 16:49:48 3002 1

原创 大数据系列(五)之 Flume 数据传输

目录一、Flume简介二、Flume架构2.1 Flume基本组件2.2 Flume常见数据流模型三、Source,Channel,Sink 详解3.1 Source3.2 Channel3.3 Sink四、小结本文仅用于学习记录总结所用,配置方面有大量参考官方文档,以方便查阅,不喜勿喷。Flume可以说是配置型框架,通过简单的配置实现数据的收集和发送,...

2019-10-11 15:26:46 3052

原创 大数据系列 之 学习准备

在学习大数据的过程中,需要具备的能力或者知识,在这里简单的罗列一下:语言基础:需要会使用shell脚本、java和scala(这俩语言主要是用于日常代码和阅读源代码) 工具:IDE如eclipse或者idea,虚拟机和secureCRT连接工具 书籍:《Hadoop权威指南》《Hadoop YARN权威指南》《Spark快速大数据分析》《从Paxos到zookeeper分布式一致性原理与实...

2019-10-09 15:43:58 193

原创 大数据系列(四)之 MapReduce过程及shuffle详解

目录一、什么是MapReduce?二、怎么理解Hadoop中的MapReduce?三、MapReduce应用场景四、MapReduce执行流程五、shuffle详解5.1 Map阶段的shuffle5.2 Reduce阶段的shuffle六、MapReduce练习WordCount本篇文章将会介绍Hadoop重要的计算框架MapReduce。本章着重从...

2019-10-09 11:11:09 2127

原创 大数据系列(三)之 Hadoop Yarn 资源调度框架详解

目录一、为什么要使用资源调度系统Yarn二、Yarn的主要功能三、Yarn组件四、Yarn架构详解五、Yarn执行工作流程六、Yarn高可用小结一、为什么要使用资源调度系统Yarn这还要从Hadoop1.0说起,关于Hadoop1.0 的架构这里就不多做介绍了,感兴趣的同学自行了解一下。在Hadoop1.0 中,MR 作业的调度还是有两个重要的组件:JobTra...

2019-09-07 11:19:57 1285

原创 大数据系列(二)之 Hadoop hdfs 分布式文件系统详解

目录一、HDFS概述二、文件命名空间三、HDFS组件介绍四、架构详解五、了解一下HDFS的操作六、HDFS 不适合存储小文件七、HDFS高可用实现原理小结在了解HDFS之前,我们先来简单介绍一下Hadoop:Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算...

2019-09-03 10:51:35 909

原创 深入了解 Java JUC(二)之 从JUC锁机制AQS到重入锁、读写锁和CountDownLatch

目录一、什么是AQS?二、AQS的两种模式(共享模式与独占模式)三、同步队列四、独占锁和共享锁的获取释放流程4.1 独占锁的 获取和释放流程4.2 共享锁的 获取和释放流程五、重入锁ReentrantLock六、读写锁ReentrantReadWriteLock七、闭锁CountDownLatch谈到JUC中的锁机制,不得不说一下AQS。希望大家耐心阅读,最...

2019-08-28 16:27:00 866 1

原创 大数据系列(一)之 ZooKeeper 分布式协调服务详解、搭建和Java API实现动态上下线,Watcher机制

本文创作的初心是为学习或了解ZooKeeper的童鞋提供帮助,请大家耐心仔细阅读。目录一、Zookeeper 是什么 ?二、Zookeeper 在Hadoop生态中是干什么的?三、Zookeeper 是怎么实现的?四、ZooKeeper的基本运转流程五、Zookeeper 中的事务操作 六、Zookeeper 特点七、Zookeeper 集群中的...

2019-08-21 20:10:21 668

原创 深入了解 Java 并发编程之 聊聊Java中的 Unsafe 类

目录引言:为什么要了解 Unsafe 类1. Unsafe类介绍2.Unsafe类的使用问题3. Unsafe详解3.1 初始化代码3.2 Unsafe类的API常用方法和使用场景引言:为什么要了解 Unsafe 类 怎么还有这么一个类?怎么也没见过?这是个什么东西?第一次看到这个类时一连串的问号就出现了。在看JUC源码的时候,很多地方有用到了Unsa...

2019-08-19 15:47:34 375

原创 深入了解 Java JUC(一)之 atomic(原子数据类的包)

目录1. JUC简介:2. atomic(原子数据类的包)内部实现原理3. 以 AtomicInteger 为例,内部的CAS实现1. JUC简介: JUC 是 java.util.concurrent 的简称,在 Java 5.0 提供了java.util.concurrent(简称JUC)包,这个包包含了一系列能够让 Java 的并发编程变得更加简单轻松的工...

2019-08-17 09:39:28 369

原创 从JVM 编译后的指令解释:为什么 i++ 不是原子操作?

来看一个例子:在这个例子中,我们定义了 increase() 方法,方法体是 num++ 的操作,我们通过编译成字节码文件中的jvm指令来看为什么 num++ 不是原子操作,而是包括读取变量的原始值、进行加1操作、写入工作内存。1. 源文件 Test_volatile.javapublic class Test_volatile { private volatile...

2019-08-16 14:39:21 538

原创 深入了解 Java 并发编程之 volatile 关键字和内存屏障(Memory Barrier)

内容介绍:1.volatile关键字介绍(volatile包含两层语义)2. 在讲之前先补充几个概念:Java 内存模型中的可见性、原子性和有序性3. 看完概念,再来介绍 volatile 关键字4. 保证原子性解决办法:把 num++ 操作限制为原子操作5. 使用volatile关键字的场景6. 深入了解volatile的可见性和有序性: 内存屏障(Memory Bar...

2019-08-13 14:12:23 785

原创 java JUC 之 四种常用线程池 + Spring提供的线程池技术

目录一. 线程池的概念二. 使用线程池的原因三. JUC常用四种创建线程池方式四. 常见的四种线程池详解五. 进一步应用 --> Spring提供的线程池技术ThreadPoolTaskExecutor的使用六. 感谢大家的阅读!一. 线程池的概念 线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线...

2019-08-10 13:12:33 995

原创 《Spring实战(第四版)》pdf

内容简介《Spring实战(第4版)》是经典的、畅销的Spring学习和实践指南。第4版针对Spring 4进行了全面更新。全书分为四部分。第1部分介绍Spring框架的核心知识。第二部分在此基础上介绍了如何使用Spring构建Web应用程序。第三部分告别前端,介绍了如何在应用程序的后端使用Spring。第四部分描述了如何使用Spring与其他的应用和服务进行集成。《Spring实战(...

2019-08-07 16:36:13 5847 77

原创 Java 前后端交互的通用VO类

日常开发中,经常会遇到前后端交互的时候,后端返回前端数据的问题,通常的做法是在Controller里将需要的数据以JSON的格式返回,但是为了系统更加的有条理性,也为了异常排查问题方便,我们整合一个交互VO类(顺便多一嘴,命名的时候,这里的VO全通常全部使用大写),VO类里面包括了以下几点:1.请求结果result;2.返回状态码code;3.如果请求失败的话还有失败原因reason;...

2019-08-07 15:36:20 4026

原创 JavaWeb 之 Springboot项目防止XSS漏洞攻击解决办法

1. 什么是XSS攻击人们经常将跨站脚本攻击(Cross Site Scripting)缩写为CSS,但这会与层叠样式表(Cascading Style Sheets,CSS)的缩写混淆。因此,有人将跨站脚本攻击缩写为XSS。跨站脚本攻击(XSS),是目前最普遍的Web应用安全漏洞。这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中,当正常用户访问该页面时,则可导致嵌入的恶意...

2019-07-15 10:30:08 5719

原创 Springboot 整合 Shiro 实现登录认证和权限校验

shiro介绍: Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。三个核心组件:Subject, SecurityManager 和 Realms.Subject:即“当前操作用户”。但是,在Shiro中,Sub...

2019-07-04 17:03:05 680

原创 HTTPClientUtil.java + 模拟并发工具类(请求为20,且总的请求数为1000)

目标:编写一段代码,模拟并发请求为20,且总的请求数为1000,当1000个请求完成后,打印“请求完成”public class UploadTest { // 总的请求个数 public static final int requestTotal = 1000; // 同一时刻最大的并发线程的个数 public static final int conc...

2019-06-17 08:11:44 814

原创 SSM 项目整合redis,实现登录次数的累计判断

redis介绍: Redis相信大家都不陌生了,一款优秀的开源的高性能而且轻量级的key-value存储系统。和memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。 这些数据类型都支持push/pop、add/remove及取交集并...

2019-05-30 10:10:02 1055

原创 Java 实现 MD5 和base64 的加密 解密 和 MD5文件完整性校验

介绍:MD5:一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致,是一种不可逆的摘要算法,用于生成摘要,无法逆破解到原文。Base64:是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息,是可逆的,经过Encode后,可以将Decode转化为原文。在开发中,有的公司上传图片采用的是将图片转换成Base64...

2019-05-30 09:31:53 2192 1

原创 java之poi 使用 easyexcel 实现Excel 批量导入导出

本章提供了java使用阿里的easyexcel实现Excel导入,导出示例,还有网络下载的方法。模板大家可以随意制作,本例中使用模板表头及数据已经截图,以供参考。easyexcel背景:Java解析,生成Excel比较有名的框架有Apache poi,jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一...

2019-05-24 16:24:12 24367 14

原创 springboot获取FTP上音频文件,并响应流,前端audio直接调接口

目录1. 文件就保存在本地,可以用new File()来获取文件2.文件保存在FTP服务器上,可以使用ftpClient.retrieveFile(remotePath,outputStream)小结项目中经常用到播放一些文件,比如mp3,wav格式的一些文件,下面提供了一种直接拿到音频文件并响应给前端的一种方式,我的音频文件是存在ftp服务器上,而且ftp服务器和应用服务器是...

2019-05-23 11:20:26 6244 19

原创 @RestController和@Controller注解的区别

@RestController和@Controller是我们在前端控制层用在类上面的一个注解,这个我们大家都很熟悉。    @RestController这个注解相当于@Controller和@ResponseBody的一个组合,当我们使用@RestController注解定义一个类的时候,这个类中方法传递给前端的数据会自动转换为json类型。这里需要注意@RestController只是标识...

2018-11-30 10:27:03 227

转载 【SpringBoot】核心依赖和自动配置

之前介绍了springboot是有多么的好,那么,我们现在通过一个小demo来看他是有多么的强大!一、核心pom引入        我们可以知道一般的项目引入了的基本包和spring一些连接池,再加上几个配置文件还有应用服务器(或者web服务器),就可以直接运行起来了。那么springboot要如何做呢?首先就是核心依赖了:<parent>    <group...

2018-11-27 15:37:12 341

转载 Eclipse上Maven环境配置使用 (全)

1. 安装配置Maven:  1.1 从Apache网站 http://maven.apache.org/ 下载并且解压缩安装Apache Maven。    Maven下载地址: http://maven.apache.org/download.cgi  1.2 配置 Maven 的conf文件夹中配置文件settings.xml。  settings.xml<?xml ver...

2018-11-27 11:10:08 108

转载 构建Maven项目的完整过程--普通web项目(Eclipse)

进行以下步骤的前提是你已经安装好本地maven库和eclipse中的maven插件了(有的eclipse中已经集成了maven插件)一、Maven项目的新建1、鼠标右键---->New----->Other...2、直接点击下一步3、选中 maven-archetype-webapp 后点击下一步4、 Group Id 中输入项目的基本包名。    ...

2018-11-27 10:55:13 121

转载 @RequestMapping、@ResponseBody 和 @RequestBody 注解的用法与区别

转自:https://blog.csdn.net/cx243698/article/details/79908742@RequestMapping @ResponseBody 和 @RequestBody 我们经常使用,它们的区别是什么呢,下面简单介绍下:@RequestMapping     @RequestMapping 是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上...

2018-10-26 15:09:50 140

转载 重写equal()时为什么也得重写hashCode()之深度解读equal方法与hashCode方法渊源

转载至:http://blog.csdn.net/javazejian/article/details/51348320首先分享下.编写一个完美equals()的几点建议下面给出编写一个完美的equals方法的建议(出自Java核心技术 第一卷:基础知识):1)显式参数命名为otherObject,稍后需要将它转换成另一个叫做other的变量(参数名命名,强制转换请参考建议5)2)...

2018-10-25 09:49:28 105

转载 SpringBoot RocketMQ 整合使用和监控

原文章出处:http://www.54tianzhisheng.cn/2018/02/07/SpringBoot-RocketMQ/ https://blog.csdn.net/qq_27529917/article/details/79871052项目用到了rocketMQ,资料整理一波,以便学习使用。在 IDEA 创建一个 Spring...

2018-09-18 16:15:16 6764 2

转载 淘宝定时任务 tbschedule实战

最近工作中遇到了 job-MQ 的问题  其中用到了淘宝定时任务tbschedule   查资料发现这一篇写的很详细,收藏一下,以便自己学习使用。原文章:https://blog.csdn.net/convict_eva/article/details/52582847说明:tbschedule项目其实可以分为两部分:1)schedule管理控制台。负责控制、监控任务执行状态2)实际...

2018-09-06 10:02:07 2182

原创 Spring 初次理解MVC 的controller和Service

我们都知道,标准主流现在的编程方式都是采用MVC综合设计模式,MVC本身不属于设计模式的一种,它描述的是一种结构,最终目的达到解耦,解耦说的意思是你更改某一层代码,不会影响我其他层代码,controller层:可以看做是view和Model之间进行沟通的桥梁,可以分发用户的请求,并选择恰当的视图以用于显示,同时可以解释用户的输入并映射为模型层可以执行的操作。控制器Controller 负责...

2018-07-21 08:45:06 17261 1

原创 《Spring+MyBatis企业应用实战》pdf

内容提要编辑《Spring+MyBatis企业应用实战》介绍了Java EE 领域的两个开源框架:Spring 的MVC 和MyBatis。其中Spring 的版本为4.2,MyBatis 的版本是3.4。本书的示例建议在Tomcat 8 上运行。《Spring+MyBatis企业应用实战》重点介绍如何整合Spring MVC 4+MyBatis 3 进行Java EE 开发,主要包括...

2018-07-20 10:36:37 1714 49

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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