自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (7)
  • 收藏
  • 关注

转载 揭开面纱,追着 redis 进行七连问

Hello Redis 有几个问题想请教你Hello,Redis! 我们相处已经很多年了,从模糊的认识到现在我们已经深入结合,你的好我一直都知道也一直都记住,能否在让我多问问你的几个问题,让我更加深入的去了解你。1. redis的通讯协议是什么redis的通讯协议是文本协议,是的,Redis服务器与客户端通过RESP(REdis Serialization Pro...

2020-04-28 19:14:21 1310 2

转载 【重要】MySQL中order by语句的实现原理以及优化手段

相信很多人在面试过程中,总被问到有没有 SQL 调优经验,对于工作经验年限较少的求职者,通常都是在面试之前从网上百度一些答案,提前背熟,然后面试的时候直接将提前背好的答案说出来。笔者作为一名菜鸟,在刚满一年工作经验的时候,出去面试,就是这么干的。记得去某家公司面试的时候,被面试官问到 order by 在排序的时候执行较慢,这个时候该如何优化?我当初想都没想,就回答说给 order by 子句中的...

2020-04-30 18:38:43 976

转载 API配置框架 Dataway

默认例子里有个坑,需要加入 spring-boot-starter-web 依赖才能启动后台web容器<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web...

2020-04-30 13:20:48 1879 1

转载 java获取异常堆栈信息-关于StackTraceElement的使用

实际项目中有时候我们需要知道在执行某个方法时,它之前的调用链咋样的,尤其是涉及到多线程时,我们需要知道某个方法到底有没有被调用,除了常用的打印日志外,还可以使用StackTraceElement,talk is cheap ,show the code.public class Test { public static void main(String[] args) { ...

2020-04-29 17:58:04 1995

转载 SpringBoot源码解析之应用类型识别、ClassUtils 源码

创建SpringBoot项目时,如果不选择starter-web,创建的SpringBoot项目可以正常运行,但运行结束程序便终止了。如果配置starter-web,则正常启动web应用。那么,SpringBoot是如何分辨出来当前应用是为web应用还是其他类型的应用呢?本篇文章带领大家从源码层面进行相应分析。枚举WebApplicationTypeSpringBoot使用枚举类WebAp...

2020-04-29 10:47:27 3134

转载 Redis的基础事务与ABA问题

Redis的基础事务一,Redis的事务命令命令 说明 备注 multi 使用该命令开启事务 该命令后的操作指令会进入队列,并不会直接开始执行 watch key1 [key2……] 监听某些键 当被监听的键的事务执行前被修改,则事务发生回滚。使用乐观锁 unwatch key1 [key2……] 取消监听某些键 e...

2020-04-28 19:12:16 933

转载 redis String类型底层数据结构 sds

一. 简单动态字符串1.1 什么是简单动态字符串?redis在实现字符串中并没有采用传统C语言中的字符串表示(传统的C语言字符串是一个以空字符结尾的字符数组),而是自己定义了一种叫做简单动态字符串(simple dynamic string, 简称SDS)的抽象类型,并用SDS用作redis默认的字符串表示。在Redis里面,C字符串只会作为字符串字面量(string literal)...

2020-04-28 19:07:47 2509

转载 分布式缓存Redis之Pipeline(管道)

 Redis 的 pipeline(管道)功能在命令行中没有,但 redis 是支持 pipeline 的,而且在各个语言版的 client 中都有相应的实现。 由于网络开销延迟,就算 redis server 端有很强的处理能力,也会由于收到的 client 消息少,而造成吞吐量小。当 client 使用 pipelining 发送命令时,redis server 必须将部分请求放到队列中(使用...

2020-04-28 18:30:11 625

转载 看懂 Serverless,这一篇就够了

1. 无服务器(Serverless)计算是什么云计算涌现出很多改变传统IT架构和运维方式的新技术,比如虚拟机、容器、微服务,无论这些技术应用在哪些场景,降低成本、提升效率是云服务永恒的主题。过去十年来,我们已经把应用和环境中很多通用的部分变成了服务。Serverless的出现,带来了跨越式变革。Serverless把主机管理、操作系统管理、资源分配、扩容,甚至是应用逻辑的全部组件都外包...

2020-04-28 14:46:32 882

转载 多实例 canal应用-1个server+2个instance+2个client+2个mysql

canal应用-1个server+2个instance+2个client+2个mysql原创一 canal应用架构设计组件说明:1 . linux内核版本(CentOS Linux 7):(命令:uname -a)Linux slave1 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x...

2020-04-27 19:58:16 4360

转载 ElasticSearch 6.x 学习笔记:12.字段类型

字段类型概述一级分类 二级分类 具体类型 核心类型 字符串类型 string,text,keyword 整数类型 integer,long,short,byte 浮点类型 double,float,half_float,scaled_float 逻辑类型 boolean 日期类型 date 范围类型 range ...

2020-04-27 19:06:44 767

转载 基于 Spring Boot 的 Restful 风格实现增删改查

前言 SpringBoot介绍 基于SpringBoot开发一个Restful服务 一、开发准备 二、工程说明 三、代码编写 四、代码测试 前言在去年的时候,在各种渠道中略微的了解了SpringBoot,在开发web项目的时候是如何的方便、快捷。但是当时并没有认真的去学习下,毕竟感觉自己在Struts和...

2020-04-27 18:18:24 695

转载 es filter过滤的bitset机制和caching机制

document存储数据为:PUT /forum/article/_bulk{ "index": { "_id": 1 }}{ "articleID" : "XHDK-A-1293-#fJ3", "userID" : 1, "hidden": false, "postDate": "2017-01-01" }{ "index": { "_id": 2 }}{ "articleID" ...

2020-04-27 17:52:21 1047

转载 Spring Boot 快速入门

摘要: 原创出处 http://www.iocoder.cn/Spring-Boot/quick-start/ 「芋道源码」欢迎转载,保留摘要,谢谢! 1. 概述 2. 快速入门 3. Spring Initializr 4. IDEA x Spring Initializr 666. 彩蛋 本文在提供完整代码示例,可见 https://gi...

2020-04-27 17:02:09 619

转载 canal使用记录

canal是阿里巴巴的来源项目。我们可以通过配置binlog实现数据库监控,得到数据库表或者数据的更新信息。参考我的文档前先去官网看下,可能已经支持更高版本的MySQL了1. 查看官方开源项目https://github.com/alibaba/canal2. 下载最新的canal.deployer-XXXX-SNAPSHOT.tar.gzhttps://github.com/a...

2020-04-27 16:22:00 1699

转载 为什么浏览器会限制ajax并行请求数量,有办法突破限制吗

1.为什么浏览器会限制 ajax 并行请求数量?答:浏览器发出网络请求需要新开线程,而且可以发出请求的端口数量有限,从开销角度考虑不可能无限发出并发请求;此外如果浏览器不作限制,大量的请求同时发至服务器,也可能超过服务器的处理并发请求的数量阈值(针对单个 IP),从而导致请求失败。2.有办法突破限制吗?答:浏览器的并发请求数目限制针对同一域名,因此可以将请求分散至多个域名,比如将静态资...

2020-04-26 17:23:14 5248

转载 使用RunTime.getRunTime().addShutdownHook优雅关闭线程池

有时候我们用到的程序不一定总是在JVM里面驻守,可能调用完就不用了,释放资源.RunTime.getRunTime().addShutdownHook的作用就是在JVM销毁前执行的一个线程.当然这个线程依然要自己写.利用这个性质,如果我们之前定义了一系列的线程池供程序本身使用,那么就可以在这个最后执行的线程中把这些线程池优雅的关闭掉.比如我们定义了一个线程池private Exe...

2020-04-26 15:51:52 880

转载 mvn package -pl ${PACKAGE} -am ,连锁依赖不build的原因

背景资料:项目结构为:xxx-parent(父pom),xxx-client(子pom,jar包),xxx-web(子pom,war包,依赖xxx-client)我们的maven项目打包时,在根目录下,使用mvn clean -U package -pl xxx-web -am -P $PROFILE -Dmaven.test.skip=$SKIP_TEST进行打包。基于资料可知,...

2020-04-24 11:31:36 1731

转载 堆排序(大顶堆、小顶堆)----C语言

堆排序之前的随笔写了栈(顺序栈、链式栈)、队列(循环队列、链式队列)、链表、二叉树,这次随笔来写堆1、什么是堆?堆是一种非线性结构,(本篇随笔主要分析堆的数组实现)可以把堆看作一个数组,也可以被看作一个完全二叉树,通俗来讲堆其实就是利用完全二叉树的结构来维护的一维数组按照堆的特点可以把堆分为大顶堆和小顶堆大顶堆:每个结点的值都大于或等于其左右孩子结点的值小顶堆:每个结点的值...

2020-04-22 12:08:11 1299

转载 Maven的-pl -am -amd参数学习

昨天maven的deploy任务需要只选择单个模块并且把它依赖的模块一起打包,第一时间便想到了-pl参数,然后就开始处理,但是因为之前只看了一下命令的介绍,竟然花了近半小时才完全跑通,故记录此文。假设现有项目结构如下dailylog-parent|-dailylog-common|-dailylog-web三个文件夹处在同级目录中 dailylog-web依赖dailylog-c...

2020-04-21 14:56:22 811

转载 为什么要放弃 JSP ?

以前的项目大多数都是Java程序猿又当爹又当妈,既搞前,又搞后端。随着时代的发展,渐渐的许多大中小公司开始把前后端的界限分的越来越明确,前端工程师只负责前端的事情,后端工程师只管后端的事情。正所谓术业有专攻,一个人如果什么都会,那么每一样都很难达到精通。大中型公司需要专业人才,小公司需要全才,但是对于个人职业发展来说,我建议是分开。你要是这辈子就吃 Java 这碗饭,就不要去研究什么 cs...

2020-04-20 14:14:15 685 1

转载 ES地理范围查询第二讲:地理位置信息之geo_shape

1.前言在前面我简单的介绍了es对地理位置点的相关操作,包括获取多边形内(凸多边形)的点及计算两点之间的距离,或者按照距离的远近排序的简要查询方法,但是假如我们的想要查询落在一个凹多边形内的点,使用geo_point类型的就满足不了我们的需求了,这时候es引入了geo_shape类型。2. Geo_shapegeo_shape支持GeoJson和WKT(Well-Known Text,...

2020-04-16 17:57:48 2886 1

转载 ES地理范围查询第一讲:Java操作地理位置信息(geo_point)

- 简要介绍我们知道es支持的数据类型是多种多样的,除了我们常见的几种基本数据类型,它也支持记录位置信息的的数据类型。在es中,记录地理位置信息的数据类型有两种,分别为geo_shap和geo_point,下面我针对geo_point类型简要介绍一下geo_point支持多种数据传入方式:字符串位置:lat + "," + lon 数组位置: {"lat": ...,"lon": .....

2020-04-16 15:27:50 5895 1

转载 长尾请求

1.什么是长尾?长尾请求一般是指明显高于均值的那部分占比较小的请求。 业界关于延迟有一个常用的P99标准, 也就是99%的请求延迟要满足在一定耗时以内, 1%的请求会大于这个耗时, 而这1%就可以认为是长尾请求。2.长尾会导致什么危害假设,一个服务B,有1%的可能性响应时间大于1s,如果此刻一个上游服务A需要完成一次查询,需要同时查询100次的话,那么服务A响应时间超过1s的概率是...

2020-04-16 12:04:28 1100

转载 Presto简介

是Facebook开源的,完全基于内存的并⾏计算,分布式SQL交互式查询引擎是一种Massively parallel processing (MPP)架构,多个节点管道式执⾏⽀持任意数据源(通过扩展式Connector组件),数据规模GB~PB级使用的技术,如向量计算,动态编译执⾏计划,优化的ORC和Parquet Reader等presto不太支持存储过程,支持部分标准sql...

2020-04-16 11:27:44 2485

转载 Presto基础知识

背景MapReduce不能满足大数据快速实时adhoc查询计算的性能要求。Facebook的数据仓库存储在少量大型Hadoop/HDFS集群。Hive是Facebook在几年前专为Hadoop打造的一款数据仓库工具。在以前,Facebook的科学家和分析师一直依靠Hive来做数据分析。但Hive使用MapReduce作为底层计算框架,是专为批处理设计的。但随着数据越来越多,使用Hive...

2020-04-16 10:57:40 868

原创 首屏时间

概念定义首屏范围的界定:【top: 0, left: 0, width: 100vw, height: 100vh】这里的首屏指代,页面首次加载时,当前屏幕内 DOM 内容。针对首屏时间的计算,目前只考虑包含图片和不包含图片的场景 首屏有图片 首屏时间 = 首屏图片全部加载完毕时刻 - window.performance.timing.navigationStart ...

2020-04-15 15:21:27 997

转载 缓存淘汰算法LIRS原理与实现

问题背景传统的缓存淘汰算法 LRU(Least Recently Used 最近最少访问)以其简单有效性被广泛应用,LRU 的核心思想是淘汰掉未访问时间最长的缓存块,它对所有的数据做了一个简单假设:如果数据块被访问了一次,那么该数据块在接下来的一段时间中还会被再次访问。但是当 LRU 算法遇到下面场景时候存在一定的局限性:数据块可能被访问一次之后不会再被访问,大量的对这种数据块访问会频繁地...

2020-04-15 14:22:21 5647 1

转载 Spring AOP @Aspect织入不生效

想写一个AOP,主要有2个用意,,第一个用意是做后端的防表单重复提交的token验证。第二个用意是对后台JSR303 Validator的校验结果做一个统一处理,不想把对校验结果的处理分散在每个controller方法中@ResponseBody @RequestMapping(value = "add", method = RequestMethod.POST) p...

2020-04-14 17:25:20 8588

转载 SpringBoot-AOP,接口方法上的注解无法被@Aspect声明的切面拦截的原因分析

前言在Spring中使用MyBatis的Mapper接口自动生成时,用一个自定义的注解标记在Mapper接口的方法中,再利用@Aspect定义一个切面,拦截这个注解以记录日志或者执行时长。但是惊奇的发现这样做之后,在Spring Boot 1.X(Spring Framework 4.x)中,并不能生效,而在Spring Boot 2.X(Spring Framework 5.X)中却能生效。...

2020-04-14 17:08:17 7170

转载 JVM 虚拟机图文详解

前言: 了解Java中的对象、变量等存放的内存区域十分重要 本文将全面讲解Java虚拟机中的内存模型 & 分区,希望你们会喜欢 目录:1. 内存模型 & 分区 Java虚拟机在运行Java程序时,会管理着一块内存区域: 运行时数据区 在运行时数据区里,会根据用途进行划分: Java虚拟机栈(栈区) ...

2020-04-14 15:40:59 579

转载 一个整数拆分为连续自然数之和

问题描述:将一个正整数,拆分成连续的自然数之和,输出所有可能的情况例如: 3 = 1+210 = 1+2+3+416 =5+6+7...问题求解:连续的自然数之和让我们想到了等差数列求和公式:其中Sum为要分解的正整数,n为连续自然数的个数,aFirst为连续自然数的第一位数将以上公式改写成另外一种格式求...

2020-04-13 16:27:00 5897 2

转载 Java线程池实现原理及其在美团业务中的实践

一、写在前面1.1 线程池是什么线程池(Thread Pool)是一种基于池化思想管理线程的工具,经常出现在多线程服务器中,如MySQL。线程过多会带来额外的开销,其中包括创建销毁线程的开销、调度线程的开销等等,同时也降低了计算机的整体性能。线程池维护多个线程,等待监督管理者分配可并发执行的任务。这种做法,一方面避免了处理任务时创建销毁线程开销的代价,另一方面避免了线程数量膨胀导致的过...

2020-04-09 17:12:45 723

转载 Stream的collect方法是怎么保证线程安全的

写这篇文章是因为前段时间有个同事用parallelStream处理集合的时候发现数据丢了。因为是线上问题所以和他一起看了一下。出问题的代码大致如下:List<Foobar> result = new ArrayList<>();fooList.parallelStream().forEach(bar -> { Foobar foobar = new...

2020-04-09 15:14:09 3977 1

转载 关于parallelStream并发安全的思考

今天工作中遇到了关于使用parallelStream导致的并发安全问题,使用三个ArrayList容器进行数据交集等处理时,由于数据较多,希望通过并行流提高处理效率,但没考虑过线程安全问题。解决的方法非常简单,正确的使用map、collect、reduce,或者使用线程安全容器、加锁即可。但其实是使用时没有仔细了解相关的使用知识导致应用出现问题。搜了下确实有很多相关资料,需要仔细了解相关A...

2020-04-09 15:08:55 3127

转载 java8 使用parallelStream线程安全地收集数据

Table of ContentsSolution 1: 不用parallel Solution 2: 使用collect方法以下我们常用的数据结构,都是线程不安全的。ArrayList, LinkedList HashMap, LinkedHashMap, TreeMap HashSet, LinkedHashSet, TreeSet StringBuilderparalle...

2020-04-09 11:56:32 3208

转载 Canvas弹幕实现

上一篇中用动态创建DOM元素实现弹幕效果,好处是可以在DOM元素上添加事件,但问题是当大量弹幕出现会造成页面卡顿,于是尝试用canvas绘制弹幕效果。canvas知识绘制文字let canvas = document.getElementById('canvas');let ctx = canvas.getContext('2d');ctx.font = '20px Micros...

2020-04-08 16:55:37 1226

转载 如何停止一个正在运行的线程

停止一个线程意味着在任务处理完任务之前停掉正在做的操作,也就是放弃当前的操作。停止一个线程可以用Thread.stop()方法,但最好不要用它。虽然它确实可以停止一个正在运行的线程,但是这个方法是不安全的,而且是已被废弃的方法。在java中有以下3种方法可以终止正在运行的线程:使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。 使用stop方法强行终止,但是不推荐这个方法,因...

2020-04-07 11:47:27 932

转载 守护线程(Daemon Thread)

在Java中有两类线程:用户线程 (User Thread)、守护线程 (Daemon Thread)。所谓守护 线程,是指在程序运行的时候在后台提供一种通用服务的线程,比如垃圾回收线程就是一个很称职的守护者,并且这种线程并不属于程序中不可或缺的部分。因此,当所有的非守护线程结束时,程序也就终止了,同时会杀死进程中的所有守护线程。反过来说,只要任何非守护线程还在运行,程序就不会终止。用户...

2020-04-07 11:14:06 834

转载 java实现pdf文件转word

import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStreamWriter;import java.io.Writer;import org.apache.pdfbox.pdmodel.PDDocument;import org.ap...

2020-04-03 13:51:31 1187 4

Zookeeper资源文件

2017-03-20

Zookeeper基础知识

2017-03-20

Zookeeper初识

2017-03-20

使用exe4j 制作java启动程序的 等候界面

使用exe4j 制作java启动程序的 等候界面,使用了 JDK6 自带splash功能。 备注 exe/jre 文件夹中 包含了 jre ,但由于大小问题,无法上传。

2014-06-12

jquery浮动窗

基于jquery 的悬浮窗功能,有一些基本的功能

2014-01-23

java在线预览office

java使用openoffice swftools flexpaper2.1.9 实现在线预览功能

2013-12-21

空空如也

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

TA关注的人

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