自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 收藏
  • 关注

原创 Flink集群运行问题小记

最近Flink项目中遇到一个问题,关于classloader的问题,在此小记一下问题直接抛运行异常日志把,很显眼的一句 You may be missing the 'flink-hadoop-compatibility' dependencyorg.apache.flink.client.program.ProgramInvocationException: The main method...

2019-06-04 11:53:24 4752 1

原创 堆外内存分析

堆外内存分析需要安装google-perftools工具进行分析安装g++不然编译会报错:g++: command not found,已经安装可忽略yum -y install gcc gcc-c++安装libunwind不建议版本>0.99据说有问题,这个需要FQ# wgethttp://download.savannah.gnu.org/releases/libunwi...

2019-04-17 21:22:48 996

转载 发布Maven构件到中央仓库

原文来自 发布Maven构件到中央仓库摘要maven的神威,我想用过的人都会说好的,用多了难免就会有将自己写的代码也发布到中央仓库的想法,本文就结合我自己的经历简单介绍一下怎样将构件发布到maven的中央仓库使用maven有一段时间了,不管你同意与否,我都坚决认定maven是很伟大的软件项目,使用它,可以节约很多时间,特别是和git搭配使用的时候,简直就是绝了,就像川菜的花椒和海椒的搭配一样...

2019-03-18 11:14:51 379

原创 Linux修改默认yum源为国内的阿里云

众所周知,官方的yum源在国内访问效果不佳,需要改为国内比较好的阿里云yum源wget首先确保安装wget命令yum install wget -y阿里云yum# 备份当前的yum源mv /etc/yum.repos.d /etc/yum.repos.d.backup4comex# 新建空的yum源设置目录mkdir /etc/yum.repos.d# 下载阿里云的yum源...

2019-03-15 09:07:34 1148

转载 linux系统日志文件介绍

原文出处:鸟哥笔记:linux系统日志文件介绍简单的说日志文件就是记录系统活动信息的几个文件,例如:何时、何地(来源ip)、何人(什么服务名称)、做了什么操作。换句话说就是:记录系统在什么时候由哪个进程做了什么样的行为时,发生了什么事件等。日志文件可以帮助我们了解很多系统重要的事件,包括登入者的部分信息,因此日志文件的权限通常设置为仅有root能够读取而已。常见的日志文件有下面几个:分类...

2019-03-15 09:06:02 7103

转载 详解HBase架构原理

原文来自:详解HBase架构原理什么是HBaseHBase是一个高可靠、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价的PC Server上搭建大规模结构化存储集群。HBase是Google BigTable的开源实现,与Google BigTable利用GFS作为其文件存储系统类似,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapRedu...

2019-03-15 09:03:45 320

转载 对于 Netty ByteBuf 的零拷贝(Zero Copy) 的理解

原文:对于 Netty ByteBuf 的零拷贝(Zero Copy) 的理解根据 Wiki 对 Zero-copy 的定义:“Zero-copy” describes computer operations in which the CPU does not perform the task of copying data from one memory area to another. ...

2019-02-19 08:49:12 216

转载 理解HTTPS

摘要:本文尝试一步步还原HTTPS的设计过程,以理解为什么HTTPS最终会是这副模样。但是这并不代表HTTPS的真实设计过程。在阅读本文时,你可以尝试放下已有的对HTTPS的理解,这样更利于“还原”过程。我们先不了聊HTTP,HTTPS,我们先从一个聊天软件说起,我们要实现A能发一个hello消息给B:如果我们要实现这个聊天软件,本文只考虑安全性问题,要实现A发给B的hello消息包,即...

2019-01-15 17:52:26 181

原创 Java实现拖动图片验证处理

效果话不多少,先看实现的效果前端效果后台效果核心流程分析服务端随机生成滑块图片和带滑块抠图的背景图片,并保存滑块抠图的坐标位置前端实现滑动交互,将抠图拼在抠图阴影之上,获取到用户滑动轨迹前端将滑动轨迹上报到服务端,服务端匹配是否与抠图坐标在允许的误差范围(这里单纯校验用户滑动距离是最基本的校验,出于更高的安全考虑, 还会考虑用户滑动的整个轨迹,用户在...

2019-01-09 19:14:23 11896 26

原创 Java实现点选验证码

效果话不多说,先看实现的效果,其中方框为点击区域,真实场景要去掉此方框核心流程分析随机获取背景图片随机获取中文字符在背景图片中随机获取中文字符位置设置中文旋转随机角度、字体颜色保存生成文字的坐标集合、提示信息、验证码图片前端根据提示信息获取相应的点击坐标集合,提交到服务端进行基础验证实现 //生成汉字的个数 private static Integer[]...

2019-01-09 19:14:05 6026 2

原创 VMware NAT方式创建虚拟机网络并配置固定IP

环境VMware Workstation 10本机:Windows8 64位,能够访问网络,自动获得IP地址和DNS服务器地址虚拟机:CentOS-6.4-x86_64-bin-DVD1.iso实现目标使用NAT方式创建虚拟机网络,主机IP与虚拟机IP相互ping通虚拟机能够访问网络三台虚拟机IP固定为 192.168.137.100、192.168.13...

2019-01-03 17:42:01 1173

原创 JVM 性能调优监控工具

Java自带工具jpsJVM Process Status Tool,现实指定系统内所有的HotSpot虚拟机进程用来查看基于HotSpot JVM里面所有进程的具体状态, 包括进程ID,进程启动的路径等等。语法结构:jps [options ] [ hostid ][options]选项 :-q: 输出VM标识符pid-m:输出main method的参数-l: 输出...

2018-12-26 17:58:50 252

原创 solrcloud-5.2.1 集群部署+ik分词器配置

安装下载Solr-5.2.1安装包wget http://archive.apache.org/dist/lucene/solr/5.2.1/solr-5.2.1.tgz从压缩包中抽出安装脚本tar -zxvf solr-5.2.1.tgz solr-5.2.1/bin/install_solr_service.sh --strip-components=2创建安装目录mkdi...

2018-12-25 17:20:54 506

原创 Java线程池原理

线程池的优点1、线程是稀缺资源,使用线程池可以减少创建和销毁线程的次数,每个工作线程都可以重复使用。2、可以根据系统的承受能力,调整线程池中工作线程的数量,防止因为消耗过多内存导致服务器崩溃。Executor 框架与线程池在 Java 5 之后,并发编程引入了一堆新的启动、调度和管理线程的API。Executor 框架便是 Java 5 中引入的,其内部使用了线程池机制,它在 jav...

2018-12-14 14:08:06 144

转载 Java并发编程:CountDownLatch、CyclicBarrier和Semaphore

CountDownLatch用法CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了。CountDownLatch类只提供了一个构造器:public CountDownLatch(int count) { }; ...

2018-12-13 10:29:14 103

转载 分布式事务杂谈

什么是分布式事务分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。以上是百度百科的解释,简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。分布式事务的产生的原因数据...

2018-12-13 10:25:05 131

转载 redis持久化的几种方式

前言Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务 器。Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也...

2018-12-04 14:12:00 106

转载 Redis 内存淘汰机制

摘要Redis是一款优秀的、开源的内存数据库,我在阅读Redis源码实现的过程中,时时刻刻能感受到Redis作者为更好地使用内存而费尽各种心思,例如最明显的是对于同一种数据结构在不同应用场景下提供了基于不同底层编码的实现(如压缩列表、跳跃表等)。今天我们暂时放下对Redis不同数据结构的探讨,来一起看看Redis提供的另一种机制——内存淘汰机制。探初衷Redis内存淘汰指的是用户存储的一些键...

2018-12-04 14:11:22 111

原创 Redis设计与实现

比较不错的redis书籍Redis设计与实现

2018-12-04 11:49:53 137

转载 zooKeeper分布式锁的实现原理

ZooKeeper分布式锁机制接下来我们一起来看看,多客户端获取及释放zk分布式锁的整个流程及背后的原理。首先大家看看下面的图,如果现在有两个客户端一起要争抢zk上的一把分布式锁,会是个什么场景?如果大家对zk还不太了解的话,建议先自行百度一下,简单了解点基本概念,比如zk有哪些节点类型等等。参见上图。zk里有一把锁,这个锁就是zk上的一个节点。然后呢,两个客户端都要来获取这个锁,具体是...

2018-12-04 11:33:07 352

转载 Java 技术之volatile

volatile关键字的两层语义当一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义:保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。禁止进行指令重排序。volatile保证变量的可见性每个线程在运行过程中都有自己的工作内存,那么线程1在运行的时候,会将共享变量的值拷贝一份放在自...

2018-11-30 16:56:37 104

转载 Java技术之AQS详解

AQS是AbstractQueuedSynchronizer的简称。AQS提供了一种实现阻塞锁和一系列依赖FIFO等待队列的同步器的框架,如下图所示。AQS为一系列同步器依赖于一个单独的原子变量(state)的同步器提供了一个非常有用的基础。子类们必须定义改变state变量的protected方法,这些方法定义了state是如何被获取或释放的。鉴于此,本类中的其他方法执行所有的排队和阻塞机制。子类...

2018-11-30 16:56:04 185

转载 Java中的hashcode和equals

equals作用equals() 的作用是 用来判断两个对象是否相等。equals() 定义在JDK的Object.java中。通过判断两个对象的地址是否相等(即,是否是同一个对象)来区分它们是否相等。源码如下:public boolean equals(Object obj) { return (this == obj);}既然Object.java中定义了equals()方...

2018-11-21 19:09:25 402

原创 常见漏洞类型汇总

一、SQL注入漏洞SQL注入攻击(SQL Injection),简称注入攻击、SQL注入,被广泛用于非法获取网站控制权,是发生在应用程序的数据库层上的安全漏洞。在设计程序,忽略了对输入字符串中夹带的SQL指令的检查,被数据库误认为是正常的SQL指令而运行,从而使数据库受到攻击,可能导致数据被窃取、更改、删除,以及进一步导致网站被嵌入恶意代码、被植入后门程序等危害。SQL注入的位置(1)表...

2018-11-18 13:41:26 3748

原创 Spark在Intellij IDEA中开发并运行

word count demo引入jar <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> <version>2.1.0</version><

2018-11-18 13:40:19 2051

原创 Http中Content-Type的详解

application/x-www-form-urlencoded数据被编码为名称/值对。这是标准的编码格式数据包POST http://test.com/u1 HTTP/1.1Content-Type: application/x-www-form-urlencodedcache-control: no-cachePostman-Token: 331a3936-f70c-4442-a...

2018-11-18 13:38:35 5443

原创 魅族推送平台架构及优化

魅族推送平台架构及优化内容简介平台从支撑魅族内部业务到对外能力开放过程中一系列的系统架构优化及扩张,支撑亿级高并发消息实时推送,包括服务高可用、监控、容灾、流量调度、海量存储等方面的实践与探讨。平台介绍魅族推送平台在2016年9月之后开始对外开放,目前接入的APP大概有2000+,日推送总量达到6亿,整个通道平台推送的峰值可以达到600万/分钟,理论峰值在整个集群部署架构下还可以在此基...

2018-11-18 13:33:46 1217

转载 深入理解JVM(3)-7种垃圾收集器(转)

**如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。**Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商、版本的虚拟机所提供的垃圾收集器都可能会有很大差别,并且一般都会提供参数供用户根据自己的应用特点和要求组合出各个年代所使用的收集器。接下来讨论的收集器基于JDK1.7 Update 14 之后的HotSpot虚拟机(在此版本中正式提供了商用的G...

2018-11-18 13:32:18 136

原创 Intellij IDEA的Bookmarks

Intellij IDEA的Bookmarks在看一些项目源码,介绍一个很好用的小工具:IDEA的BookmarksF11在代码上面加入标签,如下图所示Shift+F11就可以直接看到标签附近的代码可以使用以(助记符)数字作为书签,在所在行按快捷键Ctrl+Shift+任意数字,就可以插入一个标签了,要将光标跳转到某个书签,只需要Ctrl+对应的标签数字。...

2018-11-18 13:29:45 2671

原创 Chrome常用插件

本文记录一下chrome浏览器平时常用的一些插件插件用途PostmanPostman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件一键切换网站间的快速切换,保留搜索内容继续搜索OneTab节省高达95%的内存,并减轻标签页混乱现象OctotreeCode tree for GitHubMomentumReplace new ...

2018-11-18 13:26:01 260

转载 深入分析synchronized的实现原理

记得刚刚开始学习Java的时候,一遇到多线程情况就是synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是,随着我们学习的进行我们知道synchronized是一个重量级锁,相对于Lock,它会显得那么笨重,以至于我们认为它不是那么的高效而慢慢摒弃它。诚然,随着Javs SE...

2018-11-18 13:23:46 146

转载 Java锁--Lock实现原理(底层实现)

转自 Java锁–Lock实现原理(底层实现)关于java lock的底层实现原理,讲的有点深,转载学习!Lock完全用Java写成,在java这个层面是无关JVM实现的。在java.util.concurrent.locks包中有很多Lock的实现类,常用的有ReentrantLock、ReadWriteLock(实现类ReentrantReadWriteLock),其实现都依赖java....

2018-11-18 13:22:50 218

转载 ThreadLocal内存泄露

关于ThreadLocal内存泄露的备忘ThreadLocal从名字上来说就很好理解,就是用于线程(Thread)私有(Local)的存储结构,这种结构能够使得线程能够使用只有自己能够访问和修改的变量,从而实现多个线程之间的资源互相隔离,达到安全并发的目的。也因此,ThreadLocal作为线程并发中的一种资源使用方式,得到了很广泛的应用,比如Spring MVC、Hibernate等。不过...

2018-11-10 22:04:06 133

转载 SynchronousQueue同步队列

SynchronousQueue简介Java 6的并发编程包中的SynchronousQueue是一个没有数据缓冲的BlockingQueue,生产者线程对其的插入操作put必须等待消费者的移除操作take,反过来也一样。不像ArrayBlockingQueue或LinkedListBlockingQueue,SynchronousQueue内部并没有数据缓存空间,你不能调用peek()方...

2018-11-10 22:03:18 1189

转载 并发策略-CAS算法

转自对于并发控制而言,我们平时用的锁(synchronized,Lock)是一种悲观的策略。它总是假设每一次临界区操作会产生冲突,因此,必须对每次操作都小心翼翼。如果多个线程同时访问临界区资源,就宁可牺牲性能让线程进行等待,所以锁会阻塞线程执行。与之相对的有一种乐观的策略,它会假设对资源的访问是没有冲突的。既然没有冲突也就无需等待了,所有的线程都在不停顿的状态下持续执行。那如果遇到问题了无锁的...

2018-11-10 22:00:24 298

转载 Java7/8中的 HashMap和ConcurrentHashMap全解析

原文出处: JavaDoop今天发一篇"水文",可能很多读者都会表示不理解,不过我想把它作为并发序列文章中不可缺少的一块来介绍。本来以为花不了多少时间的,不过最终还是投入了挺多时间来完成这篇文章的。网上关于 HashMap 和 ConcurrentHashMap 的文章确实不少,不过缺斤少两的文章比较多,所以才想自己也写一篇,把细节说清楚说透,尤其像 Java8 中的 ConcurrentHa...

2018-11-10 21:59:26 293

转载 三种解密 HTTPS 流量的方法介绍

三种解密 HTTPS 流量的方法介绍Web 安全是一项系统工程,任何细微疏忽都可能导致整个安全堡垒土崩瓦解。拿 HTTPS 来说,它的「内容加密、数据完整性、身份认证」三大安全保证,也会受到非法根证书、服务端配置错误、SSL 库漏洞、私钥被盗等等风险的影响。很多同学认为只要访问的网站地址前有一把小绿锁就绝对安全,其实不然。本文通过介绍三种最常规的 HTTPS 流量解密方法及原理,浅谈一下 HTT...

2018-11-09 19:09:05 3954

原创 关于ESAPI获取资源文件问题

近期项目中需要使用到组件包ESAPI(ESAPI是owasp提供的一套API级别的web应用解决方案),其官方网站为:https://www.owasp.org/, 有兴趣的小伙伴可以了解一下。此处不是本文重点,本文重点记录一下使用此组件时遇到的资源加载问题。引入jar<!-- https://mvnrepository.com/artifact/org.owasp.esapi/esa...

2018-11-08 11:49:07 16876 2

原创 Linux-Mysql5.5.9-1安装

本文介绍的是Linux-Mysql5.5.9-1安装版本mysql 社区版 5.5.9#添加用户组groupadd mysql#添加用户mysql 到用户组mysqluseradd -g mysql mysqlServer下载wget --no-check-certificate https://downloads.mysql.com/archives/get/file/MyS...

2018-11-02 15:51:59 327

原创 Windows系统安装MySQL-8.0.12

本文介绍的是MySQL-8.0.12 windows安装下载官网 或者 百度网盘安装下载完成,将文件解压到你想要安装的盘里。这里我安装到了D盘。之后以管理员身份运行DOS窗口。进入到mysql的bin文件夹D:\mysql-8.0.12-winx64\bin>my.ini在mysql-8.0.12-winx64的文件夹下创建一个名为data的空文件夹。bin目录中创建一...

2018-10-30 19:18:52 163

空空如也

空空如也

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

TA关注的人

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