自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

缘自天方的博客

个人小心得,不定期更新

  • 博客(21)
  • 收藏
  • 关注

转载 热点key问题

一、引出热点key问题        我们通常使用 缓存 + 过期时间的策略来帮助我们加速接口的访问速度,减少了后端负载,同时保证功能的更新,一般情况下这种模式已经基本满足要求了。       但是有两个问题如果同时出现,可能就会对系统造成致命的危害:      (1) 这个key是一个热点key(例如一个重要的新闻,一个热门的八卦新闻等等),所以这种key访问量可能非常大。 ...

2018-07-25 09:36:11 1960

转载 redis 热点Key的发现与解决之道

摘要:在2018数据库直播大讲堂峰会-Redis专场中阿里云数据库组的梁盼从热点Key产生的原因,造成的问题开始讲解。通过在热点Key问题解决上以往的方法与阿里的方法的对比,形象的表述了阿里云在解决热点Key问题上所提方案的可行性与优越性。直播视频:https://yq.aliyun.com/video/play/1312PDF下载:https://yq.aliyun.com/download...

2018-07-25 09:11:05 13540 2

转载 ZooKeeper 工作、选举 原理

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某些应用中使用,因此需要有一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态。Zookee...

2018-07-16 20:35:03 10279 1

转载 TCP 长连接/短连接 三次握手/四次握手

建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。那如何断开连接呢?简单的过程如下:在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN,...

2018-07-13 18:12:39 590

转载 类加载的三种方式比较

概念类加载器(ClassLoader),顾名思义,即加载类的东西。在我们使用一个类之前,JVM需要先将该类的字节码文件(.class文件)从磁盘、网络或其他来源加载到内存中,并对字节码进行解析生成对应的Class对象,这就是类加载器的功能。我们可以利用类加载器,实现类的动态加载。Class的装载包括3个步骤:加载(loading),连接(link),初始化(initialize)加载:查询并加载类...

2018-07-13 13:59:21 1181 1

转载 redis一致性哈希算法

一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。     一致性hash算法提出了在动态变化的Cache环境中,判定哈希算法好坏的四个定义:1、平衡性(Balance):平衡...

2018-07-13 10:13:41 1181

转载 Java动态代理之JDK实现和CGlib实现(简单易懂)

转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6542259.html      一:代理模式(静态代理)          代理模式是常用设计模式的一种,我们在软件设计时常用的代理一般是指静态代理,也就是在代码中显式指定的代理。          静态代理由 业务实现类、业务代理类 两部分组成。业务实现类 负责实现主要的业务方法,业务代理类负责对调用的业务...

2018-07-12 16:57:55 184

转载 MySQL聚簇索引和非聚簇索引的原理及使用

索引分为聚簇索引和非聚簇索引。以一本英文课本为例,要找第8课,直接翻书,若先翻到第5课,则往后翻,再翻到第10课,则又往前翻。这本书本身就是一个索引,即“聚簇索引”。如果要找"fire”这个单词,会翻到书后面的附录,这个附录是按字母排序的,找到F字母那一块,再找到"fire”,对应的会是它在第几课。这个附录,为“非聚簇索引”。由此可见,聚簇索引,索引的顺序就是数据存放的顺序,所以,很容易理解,一张...

2018-07-12 16:24:04 9938 2

转载 java的动态代理机制详解(适用初学者)

在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而AOP的原理就是java的动态代理机制,所以本篇随笔就是对java的动态机制进行一个回顾。在java的动态代理机制中,有两个重要的类或接口,一...

2018-07-12 11:06:41 178

转载 JDK动态代理实现原理

之前虽然会用JDK的动态代理,但是有些问题却一直没有搞明白。比如说:InvocationHandler的invoke方法是由谁来调用的,代理对象是怎么生成的,直到前几个星期才把这些问题全部搞明白了。     废话不多说了,先来看一下JDK的动态是怎么用的。 Java代码  package dynamic.proxy;     import java.lang.reflect.InvocationH...

2018-07-11 18:38:01 117

转载 一致性哈希算法的两种优化方案

简介上一篇博客我简单的介绍了一致性哈希算法的基本思想。但是一致性哈希算法的提出当然也同样伴随着新的问题出现,那就是当某一个服务器结点挂掉之后,它的任务就会分配到它的下一个服务器结点,那么这就有悖于分布式系统中需要满足平衡性的要求。问题雪崩效应在服务器上会有一些数据会经常被访问,这些数据的访问次数远远高于其他数据,那么这些数据就被称为热点数据,理所当然在分布式服务器中承载这些热点数据的服务器的负载就...

2018-07-10 15:11:50 692

转载 一致性哈希算法

普通的哈希算法采用简单取模的方式,将缓存服务器进行散列,通常情况下是没有问题的,但是当缓存服务器的个数发生变动时,将会产生较大的影响如上图所示,之前有4台缓存服务器,当增加1台缓存服务器之后,除数的变化(4 -> 5)导致求模结果变化,所有缓存查询均未命中即缓存服务器的个数发生变化时,在一段时间内(缓存重建完毕之前),会有大量缓存查询未命中,导致这段时间内的服务整体性能下降特别严重一致性哈希...

2018-07-10 13:33:58 734

转载 分布式锁的几种实现方式

目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。”所以,很多系统在设计之初就要对这三者做出取舍。在互联网领域的绝大多数的场景中,都需要牺牲强一致...

2018-07-10 13:33:11 106

转载 多线程同步锁synchronized(全局锁,对象锁)

synchronized锁住的是代码还是对象 在Java中,synchronized关键字是用来控制线程同步的,就是在多线程的环境下,控制synchronized代码段不被多个线程同时执行。synchronized既可以加在一段代码上,也可以加在方法上。关键是,不要认为给方法或者代码段加上synchronized就万事大吉,看下面一段代码:class Sync { public synchron...

2018-07-10 11:16:36 1141

转载 Spring中多个工程上多个资源文件ignoreUnresolvablePlaceholders配置

Spring中多个工程下多个资源文件ignoreUnresolvablePlaceholders配置<bean id="propertyConfigurerForAnalysis" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="l...

2018-07-06 10:23:55 686

转载 JAVA并发编程J.U.C学习总结

JSR 166及J.U.C什么是JSR:JSR,全称 Java Specification Requests, 即Java规范提案, 主要是用于向JCP(Java Community Process)提出新增标准化技术规范的正式请求。每次JAVA版本更新都会有对应的JSR更新,比如在Java 8版本中,其新特性Lambda表达式对应的是JSR 335,新的日期和时间API对应的是JSR 310。什...

2018-07-05 14:32:13 260

转载 Tomcat启动过程原理详解

基于Java的Web 应用程序是 servlet、JSP 页面、静态页面、类和其他资源的集合,它们可以用标准方式打包,并运行在来自多个供应商的多个容器。Web 应用程序存在于结构化层次结构的目录中,该层次结构是由 Java Servlet 规范定义的。Web 应用程序的根目录包含直接存储或存储在子文件夹中的所有公共资源,比如图像、HTML 页面等。构成:Web应用由Web组件(一组Java类库)、...

2018-07-04 14:44:46 6243 1

转载 maven快照版本和发布版本

在使用maven过程中,我们在开发阶段经常性的会有很多公共库处于不稳定状态,随时需要修改并发布,可能一天就要发布一次,遇到bug时,甚至一天要发布N次。我们知道,maven的依赖管理是基于版本管理的,对于发布状态的artifact,如果版本号相同,即使我们内部的镜像服务器上的组件比本地新,maven也不会主动下载的。如果我们在开发阶段都是基于正式发布版本来做依赖管理,那么遇到这个问题,就需要升级组...

2018-07-04 13:17:42 363

转载 Java 并发:原子类

概述: 关于JAVA原生的并发相关的,差不多都在java.util.concurent包下。里面的东西分成如下几大类: 1.原子类 2.锁相关的 3.多线程相关的 4.线程安全的集合,关于线程安全的集合,参考 http://blog.csdn.net/youyou1543724847/article/details/52734876 5.ThreadLocal 6.并发编程(如volatile,原...

2018-07-01 17:22:18 156

原创 java 线程方法join的简单使用

一、作用  Thread类中的join方法的主要作用就是同步,它可以使得线程之间的并行执行变为串行执行。具体看代码:  public class JoinTest { public static void main(String [] args) throws InterruptedException { ThreadJoinTest t1 = new ThreadJoin...

2018-07-01 17:02:56 111

原创 Java并发:CAS、及CAS中ABA问题解决方案

【1】CAS方法:CompareAndSwap1、乐观锁的使用的机制就是CAS。在CAS方法中,CAS有三个操作数,内存值V,旧的预期值E,要修改的新值U。当且仅当预期值E和内存值V相等时,将内存值V修改为U,否则什么都不做。2、非阻塞算法(nonblocking algorithms):一个线程的失败或者挂起不应该影响其他线程的失败或挂起的算法。(1)非阻塞算法简介:https://www....

2018-07-01 16:44:11 1083

空空如也

空空如也

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

TA关注的人

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