自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我能在河边钓一整天的鱼

欢迎来到我的酒馆

  • 博客(25)
  • 资源 (1)
  • 收藏
  • 关注

原创 Git的工作流程

1.在工作目录中添加、修改文件2.将需要进行管理的文件放入暂存区域3.将暂存区域的文件提交到git仓库git管理文件的三种状态:已修改、已暂存、已提交

2020-08-24 16:11:37 144

原创 比较Redis和Memcached

存储方式上Memcached会把数据全部存到内存中,断电后会挂掉,数据不能超过内存大小。Redis部分数据存在硬盘中,采用RDB和AOF两种持久化方式,保证了数据的持久化。数据支持类型上Memcache对数据类型的支持简单,只支持key-value。而Redis支持5+3种底层模型不同Redis直接构建了自己的VM机制Value大小不同Redis可达1G,Memcache只有1M...

2020-08-24 09:15:15 151

原创 Redis的淘汰策略与过期策略

目录淘汰策略过期策略比较淘汰策略与过期策略淘汰策略最多使用的是volatile-lru:从过期时间中选择最近最少未使用的数据淘汰以及:volitile-ttl:过期时间最短的数据将会被淘汰过期策略定时过期 惰性过期(只有当一个key被访问时,才能判断这个key是否过期) 定期过期(定期扫描,扫描到过期的key再丢弃)比较淘汰策略与过期策略1.内存淘汰策略和内存过期策略互不影响2.内存淘汰用来处理内...

2020-08-24 08:59:39 205

原创 浅谈Redis如何实现一致性

目录一分为二Redis和MySQL的一致性Redis如何保证主从数据的一致性一分为二Redis的一致性分两个方面,一是Redis和MySQL的一致性;另一个是Redis集群主从的一致性Redis和MySQL的一致性好比你有两盒益达,一盒放公司,另一盒放家。每次吃一颗,但你一定每次都依次让家和公司的糖递减。这样当然会造成数据不一致的现象。解决方法是我们规定:redis的数据来源于mysql,想更新数据要先更mysql再更新到redis中...

2020-08-23 21:14:43 1096

原创 分布式集群架构的“脑裂”问题

目录什么是假死?什么是脑裂造成脑裂问题的原因如何解决脑裂问题什么是假死?什么是脑裂在分布式集群中,我们都会采取某种机制检测主节点是否有故障,有故障的话会选举出新的主节点。假死:由于心跳超时(网络原因导致)任务leader已死,但其实leader还活着脑裂:由于假死发起了新一轮的选举,此时会出现2个leader共存。会出现有的客户端请求老leader,有的客户端请求新leader造成脑裂问题的原因1.网络的不可靠性。2.集群状态监测...

2020-08-23 11:43:22 923

原创 Zookeeper如何保证数据一致性

目录前言ZK是事务处理模式什么是ZAB协议Zab协议中的Zxid消息广播阶段工作流程崩溃恢复阶段工作流程ZAB和Paxos算法的联系与区别前言在分布式场景中,zk应用非常广泛:比如发布订阅、命名服务、配置中心、注册中心、分布式锁等。zk提供了一个类似Linux文件系统的数据模型,和基于Watcher机制的分布式事件通知,这些特性都依赖zk的高容错数据一致性协议ZK是事务处理模式zk通过ZAB协议保证分布式事务的最终一致性。Z...

2020-08-22 10:48:06 772

原创 Dubbo的协议||序列化

目录Dubbo支持哪些协议为什么Dubbo默认使用dubbo协议Dubbo支持哪些协议dubbo、rmi、hessian、http、webservice、thrift、memcached、redis、rest协议都支持默认使用dubbo协议为什么Dubbo默认使用dubbo协议Dubbo2.0协议采用单一长连接和NIO异步通讯,Hessian2/dubbo二进制序列化,适合小数据量(100kb以内)大并发的服务调用,以及服务消费者机器远大...

2020-08-19 14:51:16 368

原创 浏览器访问百度都经历了什么?

这是面试中常考的点。有很多种答法:可以侧重域名解析的过程也可以侧重于网络七层通信原理本篇从网络通信原理来说明浏览器访问百度都经历什么?阶段一:访问百度用户发请求给浏览器,通过域名解析解析到www.baidu.com后开始走网络传输。从传输层到网络层再到链路层。逐层添加请求头,最后在物理层转换为2进制比特流传输阶段二、百度响应请求百度响应给浏览器是从物理层开始,逐步拆解请求头,最后返回给应用层,再通过应用层的Http请求响应给浏览器...

2020-08-19 13:08:11 909

原创 谈谈Spring&SpringBoot

谈谈IOC IOC是Spring的两大核心概念之一,IOC通过Bean容器自动的帮助我们创建对象,不需要手动去创建。IOC有一个很强大的功能DI(依赖注入),我们可以通过xml或者Java代码的方式,把我们想注入的对象属性或方法注入到IOC容器中。 依赖注入体现了Spring强大的特性:解耦。举个例子,我们使用JdbcTmeplate或者Durid时,如果他俩强耦合在一起,会导致使用JDBCTemp必须使用Durid数据源,依赖注入可以保证使用JdbcTemp只需要依赖于数据源接口...

2020-08-17 08:18:06 182

原创 什么是AQS?

目录什么是AQSAQS的使用:ReentrantLock上锁原理AQS的使用:锁如何做到互斥的?AQS的使用:如何释放锁什么是AQSAQS全称"AbstractQueuedSynchronized"意为抽象队列同步器。我们在JUC中常用的ReentrantLock、CountDownLatch底层都是基于AQS来实现的加锁和释放锁等功能。AQS是Java并发包的基础。AQS的使用:ReentrantLock上锁原理当一个线程过来尝试用R...

2020-08-16 11:18:13 389

原创 分布式事务之2PC、3PC、TCC

目录什么是2PC关系型数据库的2PC=>XA方案分布式事务框架Seata的2PC=》AT方案Seata的2PC和传统2PC比较2PC的问题什么是3PC什么是TCC什么是2PC2PC即两阶段提交协议,将整个事务流程分为两个阶段:准备阶段、提交阶段。简单来说准备阶段就执行事务代码,但不一定提交,提交阶段决定是最终提交事务还是回滚事务。为什么要简单来说?因为基于数据库的2PC和分布式框架Seata的2PC有差异,不能一概而论。关系...

2020-08-11 15:36:31 1412

原创 什么是分布式事务?

目录什么是事务什么是分布式事务分布式事务使用场景什么是事务我们先来回顾下什么是事务https://blog.csdn.net/Delicious_Life/article/details/105466757什么是分布式事务指的是分布式环境下不同服务之间通过网络远程协作完成的事务。传统的方式无法解决分布式事务问题:上图是一个分布式事务小例,你会想到@Transactional,这个注解是spring对数据库事务的java...

2020-08-11 08:59:53 196

原创 SpringBoot操作POI-Excel

导入POI-Excelspringboot项目引入下面jar包即可 <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.10.1</version> </dependen...

2020-08-10 21:13:43 428

原创 POI与EasyExcel

什么是POIPOI是Apache提供的开源代码库,这个代码库用来提供Java客户端对Microsoft Office格式文件的读写操作POI有五种结构HSSF——提供读写Microsoft Excel(2003)格式档案功能XSSF——提供读写Microsoft Excel OOXML(2007-今)格式档案的功能HWPF——提供读写Microsoft Word格式档案的功能HSLF——提供读写Microsoft PPT格式档案功能HDGF——提供读写Mic...

2020-08-10 19:18:21 265

原创 Redisson实现分布式锁

目录Redisson工作原理图Redisson工作原理1.lua脚本2.加锁3.锁互斥机制4.watch dog自动延期机制5.可重入锁机制6.释放锁机制代码实现步骤Redisson工作原理图Redisson工作原理1.lua脚本现在某个客户端要加锁,且该客户端面对是上图中的Redis Cluster集群,他会首先根据hash节点选择一台机器,紧接着会发送一段lua脚本(胶水语言)到redis上。为什么用...

2020-08-10 17:02:22 360

原创 分布式锁的实现思路

目录秒杀案例分布式锁应具备的条件三种方案的分布式锁基于数据库实现分布式锁基于缓存实现分布式锁基于Zookeeper实现分布式锁三种方案比较秒杀案例我们来看一个秒杀小案例,每有一个用户下单库存就-1,在单环境部署情况下,我们添加了synchronized锁,锁住扣除库存代码块,这样不会出现多线程并发导致库存数量出现重复或负数问题。但分布式部署,synchronized就无法解决此问题了,多个项目就有多个synchronized锁,锁之间会覆盖冲...

2020-08-10 16:19:13 673

原创 策略模式

目录经典的鸭子问题策略模式的UML图策略模式解决鸭子问题什么是策略模式策略模式在Arrays工具类中的应用用策略模式来替代if-else使用策略模式的注意事项经典的鸭子问题我们先通过一个例子来逐步分析,为什么要使用“策略模式”解决鸭子问题。现在有各种鸭子(比如野鸭、北京鸭、水鸭等,而鸭子有各种行为,例如叫和飞行),各种鸭子的行为是不一样的,如野鸭会飞,水鸭不会飞。怎么用程序实现各种鸭子的代码呢?传统的方案是这样的。定义一个抽象类Duck,具...

2020-08-09 20:29:56 229 1

原创 GitHub常用技巧

目录常用词in关键字的范围搜索stars或fork数量关键字查找awesome加强搜索高亮显示某行代码项目内搜索搜索大佬常用词watch:关注项目 fork:转发数 star:点赞数 clone:下载数 follow:关注作者in关键字的范围搜索公式:name代表项目名称、description代表项目描述、readme代表说明文档xxx in:name,description,readmest...

2020-08-08 13:40:43 201

原创 生产环境服务器慢如何诊断问题?

首先使用top命令找出cpu占比最高的进程 然后使用ps -ef或者jps进一步定位,得知是哪一个后台程序出了问题 使用命令定位到具体的线程或代码 ps -mp 进程 -o THREAD,tid,time ①-m:显示所有的线程 ②-p:pid进程使用CPU的时间 ③-o:该参数后是用户自定义格式 4.将需要的线程ID转换为16进制格式(英文小写格式)printf “%x\n” 有问题的线程ID...

2020-08-08 11:44:09 193

原创 Linux硬件命令大全

目录TopCPU:vmstat内存:free硬盘:df网络IO:ifstatToptop命令用来查看整机系统的性能使用top命令的话,重点关注的是 %CPU、%MEM 、load average 三个指标。在这个命令下,按1的话,可以看到每个CPU的占用情况uptime:系统性能命令的精简版CPU:vmstat命令格式:vmstat -n 2 3一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样...

2020-08-08 11:35:17 329

原创 G1垃圾回收器

目录G1是什么G1的原理区域化的垃圾回收回收步骤回收过程参数配置G1和CMS比较SpringBoot结合JVMGCG1是什么Garbage-First收集器,是一款面向服务端应用的收集器,应用在多处理器和大容量内存环境中,实现了高吞吐量的同时尽可能满足垃圾收集暂停时间的要求。具有以下特征:像CMS收集器一样,能与应用程序并发执行 整理空闲空间更快 需要更多时间来预测GC停顿时间 不希望牺牲大量的吞吐量性能 不需要更大的Java Heap ..

2020-08-06 18:53:12 517

原创 JVM的垃圾收集器 

目录垃圾回收算法和垃圾回收器的关系四种主要的垃圾收集器SerialParallelCMS(Concurrent Mark Sweep)G1如何查看默认的垃圾回收器JVM的七大垃圾回收器新生代的垃圾收集器串行GC(Serial Copying)并行GC(ParNew)双并行回收GC(Parallel Scavenge)老年代的垃圾收集器串行GC(Serial Old)并行GC(Parallel Old)并发标记清除GC(CMS)垃圾收集器如何

2020-08-06 17:43:51 614

原创 JVM线上常见问题

目录StackoverFlowErrorjava.lang.OutOfMemoryError:java heap spacejava.lang.OutOfMemoryError:GC overhead limit exceeededjava.lang.OutOfMemoryError:Direct buffer memoryjava.lang.OutOfMemoryError:unable to create new native threadjava.lang.OutOfMemo.

2020-08-06 10:16:54 314

原创 强、软、弱、虚引用与垃圾回收

目录什么是引用引用的结构图强引用软引用弱引用虚引用引用队列 ReferenceQueue什么是引用我们在java中经常会对类进行实例化Person p = new Person等号左边是对象的“引用”,存储在栈中。等号右边是实例化的对象,存储在堆中。这种引用也被称为强引用。引用的结构图引用类分强软弱虚以及引用队列,它们都继承于Object类,结构图如下强引用在Java中最常见的就...

2020-08-06 08:50:19 406 3

原创 什么是GC Roots——垃圾回收的可达性分析

为了解决引用计数法的循环引用个问题,Java使用了可达性分析的方法:所谓 GC Roots 或者说 Tracing Roots的“根集合” 就是一组必须活跃的引用基本思路就是通过一系列名为 GC Roots的对象作为起始点,从这个被称为GC Roots的对象开始向下搜索,如果一个对象到GC Roots没有任何引用链相连,则说明此对象不可用。也即给定一个集合的引用作为根出发,通过引用关系遍历对象图,能被遍历到的(可到达的)对象就被判定为存活,没有被遍历到的对象就被判定为死亡哪...

2020-08-04 21:14:54 1018

Ubuntu16.04安装文档

1. 创建虚拟机 2. 安装Ubuntu系统 设置光盘镜像: 点击“开启此虚拟机”。 输入主机名: 输入用户名: 输入密码:itcast123 确认密码: 选择不更新: 至此,安装完成。 3. 安装完成后的配置 3.1. 设置root用户的密码 设置root用户的密码为root 3.1.1设置静态IP https://blog.csdn.net/Delicious_Life/article/details/104603312 3.2. 设

2020-09-18

空空如也

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

TA关注的人

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