自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 MySQL索引-B+树(看完你就明白了)

转载地址:http://www.liuzk.com/410.html索引是一种数据结构,用于帮助我们在大量数据中快速定位到我们想要查找的数据。索引最形象的比喻就是图书的目录了。注意这里的大量,数据量大了索引才显得有意义,如果我想要在 [1,2,3,4] 中找到 4 这个数据,直接对全数据检索也很快,没有必要费力气建索引再去查找。索引在 MySQL 数据库中分三类:B+ 树索引Hash 索引全文索引我们今天要介绍的是工作开发中最常接触到的 InnoDB 存储引擎中的 B+ 树索引。要介绍 B+

2020-07-29 06:43:34 318

转载 spring-session原理

转载地址:https://www.cnblogs.com/lxyit/p/9672097.html前言在开始spring-session揭秘之前,先做下热脑(活动活动脑子)运动。主要从以下三个方面进行热脑:为什么要spring-session比较traditional-session方案和spring-session方案JSR340规范与spring-session的透明继承一.为什么要spring-session在传统单机web应用中,一般使用tomcat/jetty等web容器时,用户的

2020-07-22 23:23:36 2209

转载 JVM实用参数系列

JVM实用参数系列原文发表于CodeCentric博客,经原作者Sven Ruppert授权由并发编程网翻译并分享。JVM是Java Virtual Machine(Java虚拟机)的缩写,Java通过使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java具备了一次编写,多处运行的特性。JVM一直是Java学习中的重点,也是难点。并发编程网组织翻译了JVM实用参数系列文章,旨在帮助大家了解JVM的结构以及相关参数。JVM实用参数系列一共包括八篇文章,由浅入深,从编译器、垃圾回收、内存调优等方面介绍J

2020-07-14 22:58:54 117

转载 jvm参数详解

jvm参数详解内存相关选项 参数详解 默认值-Xms 初始堆大小 –-Xmx 最大堆大小 –-Xmn 年轻代大小(1.4or lator)整个JVM内存大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8 –-XX:newSize 表示新生代初始内存的大小,应该小于 -Xms的值 –-XX:NewRatio 设置年轻代和年老代的比值。如:为3,表示年轻

2020-07-14 22:51:19 161

转载 Java 内存区域与内存溢出

内存区域Java 虚拟机在执行 Java 程序的过程中会把他所管理的内存划分为若干个不同的数据区域。Java 虚拟机规范将 JVM 所管理的内存分为以下几个运行时数据区:程序计数器、Java 虚拟机栈、本地方法栈、Java 堆、方法区。下面详细阐述各数据区所存储的数据类型。程序计数器一块较小的内存空间,它是当前线程所执行的字节码的行号指示器,字节码解释器工作时通过改变该计数器的值来选择下一条需要执行的字节码指令,分支、跳转、循环等基础功能都要依赖它来实现。每条线程都有一个独立的的程序计数器,各线程间的

2020-07-14 18:53:39 226

转载 [JVM] JVM类加载机制总结

目录一 什么是类的加载机制二 类加载的时机三 类加载的过程 1 加载 2 验证:确保被加载的类的正确性 3 准备:为类的静态变量分配内存,并将其初始化为默认值 4 解析:把类中的符号引用转换为直接引用 5 初始化:为静态变量设置指定的值 6 结束生命周期四 类加载器 1 类与类加载器 2 双亲委派模型五 破坏双亲委派模型 1 自定义类加载器   2 线程上下文类加载器 3 热部署

2020-07-10 12:01:45 163

转载 SpringBoot2.x拦截器与过滤器的应用场景及配置

一、拦截器和过滤器有什么区别呢?1、对拦截器和过滤器的理解:(1)过滤器(Filter):前端访问后台请求或者静态资源文件时,你只希望符合你要求的一些请求可以访问。定义这些要求的工具,就是过滤器。(理解:就是一堆请求过来时,过滤掉一些不合法的请求)(2)拦截器(Interceptor):在后台一个处理流程正在进行的时候,你希望干预它的进展,或者在它执行前后进行相关处理,甚至终止它进行,这是拦截器做的事情。(理解:就是执行一个方法时,在方法执行前后打印日志类似的操作)。一般,拦截器存在于在将请求发送到控

2020-06-21 23:00:50 463

转载 Eclipse常用快捷键汇总

经常使用eclipse进行开发,不掌握快捷键步行啊,在此整理了一些快捷键,大家要灵活运用啊。。。(注:红色标出来的是经常使用到的快捷键,磨刀不误砍柴工啊。。。)Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+Shift+O 自动导入所需要的包(这个用的次数也相当多)Ctrl+D: 删除当前行Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt+↑

2020-06-21 15:15:33 107

转载 Intellij IDEA 快捷键整理

【常规】Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ OR ],可以跑到大括号的开头与结尾Ctrl+F12,可以显示当前文件的结构Ctrl+F7,可以查询当前元素在当前文件中的引用,然后按 F3 可以选择Ctrl+N,可以快速打开类Ctrl+Shift+N,可以快速打开文件Alt+Q,可以看到当前方法的声明Ctrl+P,可以显示参

2020-06-21 15:13:51 84

转载 Elasticsearch 入门教程

二、基本概念2.1 Node 与 ClusterElastic 本质上是一个分布式数据库,允许多台服务器协同工作,每台服务器可以运行多个 Elastic 实例。单个 Elastic 实例称为一个节点(node)。一组节点构成一个集群(cluster)。2.2 IndexElastic 会索引所有字段,经过处理后写入一个反向索引(Inverted Index)。查找数据的时候,直接查找该索引。所以,Elastic 数据管理的顶层单位就叫做 Index(索引)。它是单个数据库的同义词。每个 Inde

2020-06-18 15:01:26 97

转载 Zookeeper框架Curator使用

简介Curator是Netflix公司开源的一套Zookeeper客户端框架。了解过Zookeeper原生API都会清楚其复杂度。Curator帮助我们在其基础上进行封装、实现一些开发细节,包括接连重连、反复注册Watcher和NodeExistsException等。目前已经作为Apache的顶级项目出现,是最流行的Zookeeper客户端之一。从编码风格上来讲,它提供了基于Fluent的编程风格支持。除此之外,Curator还提供了Zookeeper的各种应用场景:Recipe、共享锁服务、Mast

2020-06-18 14:59:16 627

转载 集群环境下Redis分布式锁的正确姿势

集群环境下Redis分布式锁的正确姿势一、前言在上一篇文章中,已经介绍了基于Redis实现分布式锁的正确姿势,但是上篇文章存在一定的缺陷——它加锁只作用在一个Redis节点上,如果通过sentinel保证高可用,如果master节点由于某些原因发生了主从切换,那么就会出现锁丢失的情况: 客户端1在Redis的master节点上拿到了锁Master宕机了,存储锁的key还没有来得及同步到Slave上master故障,发生故障转移,slave节点升级为master节点客户端2从新的Master获取到

2020-06-18 14:59:01 591

转载 Redis分布式锁的正确实现方式

前言分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正确地实现Redis分布式锁。可靠性首先,为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件:互斥性。在任意时刻,只有一个客户端能持有锁。不会发生死锁。即使有一个客户端在持有锁的期间

2020-06-18 14:58:44 84

转载 RabbitMQ消息投递、可靠性传输、重复消费、消息的顺序性等问题

RabbitMQ消息投递、可靠性传输、重复消费、消息的顺序性等问题1、什么是RabbitMQ?为什么要使用RabbitMQ? RabbitMQ是一款开源的、Erlang语言编写的、基于AMQP协议的消息中间件。 解耦:实现消费者和生产者之间的解耦 异步:将消息写入消息队列,非必要的业务逻辑以异步的方式运行,加快响应速度 削峰:将高并发时的同步访问变为串行访问达到一定量的限流,利于数据库的操作2、RabbitMQ的使用场景? 1、服务间异步通信

2020-06-18 14:58:27 1788 1

转载 Kafka基础教程

Kafka最早是linkedin公司用于日志处理的分布式消息队列。现在它的功能远不止消息队列这么简单。根据Kafka官网的定义,Kafka是一个分布式的流处理平台。它拥有以下三大核心功能:发布和订阅数据流,类似于传统消息队列(RabbitMQ,RocketMQ)的功能以容错的方式存储数据流的功能实时处理数据流的功能为了支持以上的三大核心功能,Kafka拥有四组核心API,包括:Producer API:用于发送数据。Consumer API:用于消费数据。Streams API:用于流处理,

2020-06-18 14:58:16 100

转载 redis集群之Codis

在大数据高并发场景下,单个 Redis 实例往往会显得捉襟见肘。首先体现在内存上,单个 Redis 的内存不宜过大,内存太大会导致 rdb 文件过大,进一步导致主从同步时全量同步时间过长,在实例重启恢复时也会消耗很长的数据加载时间,特别是在云环境下,单个实例内存往往都是受限的。其次体现在 CPU 的利用率上,单个 Redis 实例只能利用单个核心,这单个核心要完成海量数据的存取和管理工作压力会非常大。正是在这样的大数据高并发的需求之下,Redis 集群方案应运而生。它可以将众多小内存的 Redis 实例综合

2020-06-17 23:04:15 266

空空如也

空空如也

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

TA关注的人

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