自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 MySQL InnoDB 锁总结(二)- RC 加锁流程

在之前InooDB 加锁总结的文章中,讨论了大量在 RR 情况下 MySQL 如何加锁的案例。而这篇相较于前一篇,更偏重于实践,主要是在遇到锁等待或者死锁时,如何分析和解决问题。这篇讲解的案例全都基于 RC 隔离级别,MySQL 版本为 5.7.x.我们知道,RC 相较于 RR 在很大程度上调高了并发性,降低了死锁发生的概率,因而作为大多数高并发场景的首选。但是降低并不代表消除,如果设计的索引或者语句的写法不当,依旧会产生死锁等问题。在这篇文章中,将会围绕着一个实际案例进行讨论。假设在数据库中有

2021-06-18 18:02:17 504

转载 关于 InnoDB 锁的超全总结

几个月之前,开始深入学习 MySQL 。说起数据库,并发控制是其中很重要的一部分。于是,就这样开起了 MySQL 锁的学习,随着学习的深入,发现想要更好的理解锁,需要了解 MySQL 事务,数据底层的存储方式,MySQL 的执行流程,特别是索引的选择等。在学习期间,查找了不少资料,现根据个人的理解总结下来,方便日后复习。InnoDB 锁一览#先从MySQL 官网的锁介绍开始,来逐一认识下这些让我们夜不能寐的小王八蛋:Shared and Exclusive Locks#这二位正式称.

2021-06-18 18:00:22 131

原创 为什么MySQL选择Repeatable Read作为默认隔离级别?

我们知道, ANSI/ISO SQL定义的标准隔离级别有四种,从高到底依次为:可序列化(Serializable)、可重复读(Repeatable Reads)、提交读(Read Committed)、未提交读(Read Uncommitted)。RU隔离级别下,可能发生脏读、幻读、不可重复读等问题。RC隔离级别下,解决了脏读的问题,存在幻读、不可重复读的问题。RR隔离级别下,解决了脏读、不可重复读的问题,存在幻读的问题。Serializable隔离级别下,解决了脏读、幻读、不可重复读的问题。.

2021-06-18 17:37:32 268

转载 JVM调优总结(五)--调优方法及反思

调优方法JVM调优工具Jconsole,jProfile,VisualVMJconsole:jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。详细说明参考这里JProfiler:商业软件,需要付费。功能强大。详细说明参考这里VisualVM:JDK自带,功能强大,与JProfiler类似。推荐。如何调优观察内存释放情况、集合类检查、对象树上面这些调优工具都提供了强大的功能,但是总的来说一般分为以下几类功能堆信息查看可.

2021-04-26 16:37:22 120

转载 JVM调优总结(四)--新一代垃圾回收算法G1

新一代的垃圾回收算法垃圾回收的瓶颈传统分代垃圾回收方式,已经在一定程度上把垃圾回收给应用带来的负担降到了最小,把应用的吞吐量推到了一个极限。但是他无法解决的一个问题,就是Full GC所带来的应用暂停。在一些对实时性要求很高的应用场景下,GC暂停所带来的请求堆积和请求失败是无法接受的。这类应用可能要求请求的返回时间在几百甚至几十毫秒以内,如果分代垃圾回收方式要达到这个指标,只能把最大堆的设置限制在一个相对较小范围内,但是这样有限制了应用本身的处理能力,同样也是不可接收的。分代垃圾回收方式确实也考

2021-04-26 16:36:29 209

转载 JVM调优总结(三)--配置示例

典型配置举例以下配置主要针对分代垃圾回收算法而言。堆大小设置年轻代的设置很关键JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置:java -Xmx3550m -Xms3550m -Xmn2g –Xss128k

2021-04-26 16:35:27 86

转载 JVM调优总结(二)--垃圾回收

基本垃圾回收算法可以从不同的的角度去划分垃圾回收算法:按照基本回收策略分引用计数(Reference Counting):比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。标记-清除(Mark-Sweep):此算法执行分两阶段。第一阶段从引用根节点开始标记所有被引用的对象,第二阶段遍历整个堆,把未标记的对象清除。此算法需要暂停整个应用,同时,会产生内存碎片。复制(

2021-04-26 16:33:22 108

转载 JVM调优总结(一)--基本概念

一些概念数据类型Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。基本类型包括:byte,short,int,long,char,float,double,Boolean,returnAddress引用类型包括:类类型,接口类型和数组。堆与栈堆和栈是程序运行的关键,很有必要把他们的关系说清楚。栈

2021-04-26 16:32:17 70

转载 面试题

JAVA基础JAVA中的几种基本类型,各占用多少字节?String能被继承吗?为什么?不可以,因为String类有final修饰符,而final修饰的类是不能被继承的,实现细节不允许改变。平常我们定义的String str=”a”;其实和String str=new String(“a”)还是有差异的。前者默认调用的是String.valueOf来返回String实例对象,至于调用哪个则取决于你的赋值,比如String num=1,调用的是public static String va

2021-04-22 17:22:21 218

原创 分布式锁

package com.zkj.mall.cart.common.lock;import com.zkj.mall.cart.common.lock.annotation.DistributedLock;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.Around;import ...

2018-06-01 18:07:05 342

原创 分布式锁

package com.msxf.eyas.common.lock;/** * 分布式锁 * */public interface DistributedLock { /** * 加锁, 立即返回 * @return true 成功 */ boolean lock(); /** * 加锁 * * @p...

2018-06-01 18:05:06 174

原创 IPUtil

package com.msxf.eyas.common.util;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import javax.servlet.http.HttpServletRequest;import java.net.*;import java.util.Enumeration;import java...

2018-06-01 18:02:27 454

原创 分布式系统数据的一致性

用户在京东上下了一个订单,发现自己在京东的账户里面有余额,然后使用余额支付,支付成功之后,订单状态修改为支付成功,然后通知仓库发货。假设订单系统,支付系统,仓库系统是三个独立的应用,是独立部署的,系统之间通过远程服务调用。订单的有三个状态:I:初始 P:已支付 W:已出库,订单金额100, 会员帐户余额200 如果整个流程比较顺利,正常情况下,订单的状态会变为I->P->W,会员帐户余

2017-12-15 17:31:20 230

空空如也

空空如也

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

TA关注的人

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