自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (1)
  • 收藏
  • 关注

原创 布隆过滤器详解

布隆过滤器详解概述简介设计思想特性优点和缺点优点缺点小结原理添加元素查询元素删除元素false positives(误判)false positives公式推导实践Guava BloomFilterGuava BloomFilter依赖Guava BloomFilter实践Guava BloomFilter几个核心参数Guava BloomFilter 创建过程Guava BloomFilter哈希策略(put过程)Redis BloomFilterRedis BloomFilter依赖Redis Bloo

2021-07-16 16:46:32 983

原创 记一次生产环境上从redis亿级缓存中批量删除key

redis scan批量删除key一、网上常见的scan模糊匹配批量删除方法二、scan全局扫描模糊匹配批量删除key(游标在移动)java redis scan批量删除key,在亿级缓存数据批量删除时尤为有效,我这边的应用场景是scan扫描匹配批量删除redis未设置过期时间的key一、网上常见的scan模糊匹配批量删除方法这种方法有个问题,那就是没法移动游标,无法全局扫描redis集群中所有匹配的key public void scan(String pattern, Consumer<b

2020-07-01 17:10:29 2101

原创 (一)centos7.3安装elasticsearch7.0.0

文章目录centos7.3安装elasticsearch7.0.0下载下载地址linux下usr/local目录下创建elasticsearch目录解压elasticsearch压缩包编辑config/elasticsearch.yml在elasticsearch-7.0.0创建data目录给予上一步的添加数据和日志的存储目录使用启动elasticsearch(前台启动)此时启动报错,报异常告知不...

2019-10-30 21:50:09 503

原创 最常见的几种设计模式

文章目录最常见的几种设计模式单例模式饿汉式单例模式(非懒加载)双重检查(懒汉的升级,线程安全,懒加载)静态内部类(线程安全,懒加载)枚举类(线程安全,非懒加载)建造者模式策略模式观察者模式代理模式静态代理模式动态代理模式jdk动态代理cglib动态代理最常见的几种设计模式单例模式定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。优点:在内存里只有一个实例,减少了内存的开销,尤...

2019-09-30 13:55:27 218

原创 java虚拟机系列(十一)线程安全与锁优化

java虚拟机系列(十一)线程安全与锁优化一、线程安全《java Concurrency In Practive》的作者Brian Goetz对“线程安全”有一个比较恰当的定义:“当多个线程访问同一个对象,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象是线程安全的”。如果一个对象...

2019-09-30 11:05:55 164

原创 java虚拟机系列(十)- java内存模型与线程

java虚拟机系列(十)- java内存模型与线程一、概述多任务处理在现代计算机操作系统中几乎已经是一项必备的功能,是指让计算机同时去做几件事情,充分“压榨”处理器的运算能力,将花费在磁盘I/O、网络通信或者数据库访问的时间(阻塞等待的时间)解放出来。除了充分利用计算机处理器的能力外,一个服务端同时对多个客户端提供服务则是另一个更加具体的并发应用场景。而服务端是java语言最擅长的领域之一。...

2019-09-30 11:00:32 127

原创 java虚拟机系列(六)- 虚拟机类加载机制

文章目录java虚拟机系列(六)- 虚拟机类加载机制一、概述二、类加载时机三、类的加载过程3.1 加载3.2 连接3.2.1验证3.2.2 准备3.2.3 解析3.3 初始化四、类加载器4.1 类与类加载器4.1.1 从虚拟机角度看类加载器4.1.2 从java开发人员角度看类加载器4.2 双亲委派模型java虚拟机系列(六)- 虚拟机类加载机制一、概述一个Java文件从编码完成到最终执行,...

2019-09-30 10:17:31 137

原创 java虚拟机系列(五)- 类文件的结构

java虚拟机系列(五)- 类文件的结构一、无关性基石1.1 平台无关性“与平台无关”的理想最终实现在操作系统层面上:Sun公司以及其它虚拟机提供商发布了许多运行在不同平台上的虚拟机,这些虚拟机都可以载入和执行同一种平台无关的字节码(Class字节码文件),从而实现程序的“一次编写,到处运行”。1.2 语言无关性java发展之初,设计者就考虑并实现让其他语言运行在java虚拟机上的可能,...

2019-09-30 09:47:00 92

原创 java虚拟机系列(四)- java虚拟机性能监控与调优

java虚拟机系列(四)- java虚拟机性能监控与调优java工具包及其命令一、jps显示系统中正在运行的虚拟机进程命令格式:jps [options] [hostid]常用参数-q:只输出进程id-l:输出全类名,如果是jar包输出jar包地址-m:输出main方法传入的参数-v:输出虚拟机进程启动参数二、jstat监控jvm虚拟机内存使用情况的工具。可以用...

2019-09-30 09:39:40 141

原创 java虚拟机系列(三)- 垃圾收集器与内存回收策略

java虚拟机系列(三)- 垃圾收集器与内存回收策略一、HotSpot算法实现1.1 枚举根节点可达性分析从GC Roots节点查找引用链期间(枚举根节点),不允许出现分析过程中对象引用关系还在不断变化的情况,所以要让整个执行系统这时好像要停顿在某个时间点上。这就要求在GC在工作时必须停顿所有的java工作线程(Stop the World)。目前主流的java虚拟机使用的都是准确式GC,...

2019-05-15 15:57:02 112

原创 java虚拟机系列(二)- 对象存活判定与垃圾收集算法

java虚拟机系列(二)- 对象存活判定与垃圾收集算法一、概述通过前一篇文章我们已经知道,java运行时数据区的程序计数器、虚拟机栈、本地方法栈这三个区域随着线程而生而灭,虚拟机栈中的栈帧应该分配多少内存在类结构确定下来就已经已知了,因此这几个区域的线程分配和回收都具有确定性。而java堆和方法区不一样,我们只有在程序运行期间才能知道创建哪些对象,这部分内存的分配和回收都是动态的,垃圾收集器...

2019-05-13 14:22:31 275

原创 java虚拟机系列(一)- 内存区域详解

java虚拟机系列(一)- 内存区域详解java虚拟机系列(一)- 内存区域详解一、运行时数据区1.1程序计数器1.2 java虚拟机栈1.3 本地方法栈1.4 java堆1.5 方法区1.6 运行时常量池1.7 直接内存二、hotspot虚拟机对象探秘2.1 对象的创建2.2 对象的内存布局2.3 对象的访问定位三、 OutOfMemoryError异常3.1 堆溢出3.2 虚拟机栈和本地方法栈...

2019-05-13 14:06:59 272

原创 (二)解决elasticsearch配置network.host: 0.0.0.0导致elasticsearch服务启动不成功的问题

一、问题概述本人在本地的虚拟机linux上安装的elasticsearch。当修改 elasticsearch.yml 文件的 network.host: 0.0.0.0 时,引起了一系列异常,导致服务无法成功启动。 network.host: 0.0.0.0引起的问题:elasticsearch服务进程启动一会之后,通过jps命令查看到进程关闭,命令行不提示错误。打开另一个命令行窗口,...

2019-04-26 17:49:18 34032 9

原创 zookeeper入门

Zookeeper一、概念动物园,是一个开放源代码的分布式协调服务,由知名互联网公司雅虎创建。设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构建成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。zookeeper是一个典型的分布式一致性解决方案,分布式应用系统可以基于它实现诸如数据发布/订阅,负载均衡,命名服务、分布式协调/通知、集群管理、Master选举、分布式锁...

2019-04-23 15:53:03 574

原创 分布式系统理论 - CAP定理和BASE理论

分布式系统理论 - CAP定理和BASE理论一、前言我们都知道,一个分布式系统,在可用性和一致性之间永远无法存在一个两全其美的方案,于是如何构建一个兼顾可用性和一致性的分布式系统成为了无数工程师探讨的难题,于是出现了诸如CAP和BASE这样的分布式系统经典理论。二、CAP定理2.1、概述CAP理论告诉我们,一个分布式系统不可能同时同时保证一致性(C:Consistency)、可用性(A:...

2019-04-22 10:13:15 290

原创 一个单体应用的扩容之路

一个单体应用的扩容之路一、前言对于一个初期的系统来说,功能较少,为了能够快速上线进行推广,此时一般会单体应用架构来进行开发。此时应用系统和数据库很可能都是部署在同一台服务器上。如下图所示。对于这样的系统,经过一段时间的使用后,用户越来越多,网站的流量会增加,单台服务器无法处理那么大的访问流量。此时会使用分而治之的思想来解决问题。第一步,通过简单扩容来解决(如垂直扩容、水平扩容)。第二...

2019-04-19 17:06:42 1198

原创 在Springboot中从项目中读取文件并下载时 ResourceUtils.getFile返回路径出错解决方案

1.本地使用ResourceUtils.getFile没有任何问题,打成jar包后部署到服务器上报错错误原因:ResouceUtils.getFile()是专门用来加载非压缩文件类型的资源的,所以它根本不会去读取jar包中的资源,本地之所以没事是因为本地访问的不是jar而是直接编译的,解决方法:要想读取jar包中的文件,只能通过流来进行读取。可以使用new ClassPath...

2018-08-24 11:26:41 6075

原创 java常见基础面试笔试题整理

对网上一些面试题进行整理,把一些不太常见的面试笔试题剔除后整理出来的最常见的面试题,可能还有些不太完善的地方,下一次再进行修改吧1、什么是JVM?为什么成JAVA为跨平台的编程语言?Java虚拟机是一个可以执行Java字节码的虚拟机进程。每个Java源文件被编译成能被Java虚拟机执行的字节码文件。Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译,...

2018-04-15 16:38:20 314

tomcat集成solr服务器以及配置好了中文分词器

只需要解压然后启动tomcat即可访问solr服务器,需要自行在apache-tomcat-solr-7.0.52\webapps\solr\solrhome\collection1\conf\schema.xml修改适合自己的配置的域即可

2018-04-27

空空如也

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

TA关注的人

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