Redis集群的三种方式详解(附优缺点及原理区别)

2022-12-22
阅读 2 分钟
1.7k
Redis提供了三种集群方式,下面我重点详解Redis三种集群方式的原理及优缺点等区别@mikechen目录[**]()Redis主从复制模式Redis哨兵模式Redis集群模式Redis主从复制模式1.Redis主从复制定义主从模式是三种模式中最简单的,主从模式指的是使用一个Redis实例作为主机,其余的实例作为备份机,主机和从机的数据完全一致。如下...

Kafka 架构和原理机制 (图文全面详解)

2022-11-01
阅读 3 分钟
936
目录一:Kafka 简介二:Kafka 基本架构三:Kafka 基本原理四:Zookeeper 在 kafka 的作用五:Kafka 的特性六:Kafka 的应用场景一:Kafka 简介Apache Kafka 是分布式发布-订阅消息系统,在 kafka 官网上对 kafka 的定义:一个分布式发布-订阅消息传递系统。Kafka 最初由 LinkedIn 公司开发,Linkedin 于 2010 年贡献给了...
封面图

Java 动态代理原理图解 (附:2种实现方式详细对比)

2022-10-31
阅读 5 分钟
1.1k
动态代理在 Java 中有着广泛的应用,例如:Spring AOP 面向切面编程,Hibernate 数据查询、以及 RPC Dubbo 远程调用等,都有非常多的实际应用@mikechen

微服务 Zipkin 链路追踪原理(图文详解)

2022-10-25
阅读 3 分钟
1.8k
一个看起来很简单的应用,可能需要数十或数百个服务来支撑,一个请求就要多次服务调用。当请求变慢、或者不能使用时,我们是不知道是哪个后台服务引起的。这时,我们使用 Zipkin 就能解决这个问题。

5大负载均衡算法 ( 原理图解 )

2022-10-25
阅读 2 分钟
747
负载均衡,是分布式架构的必备技术,也是进阶的 必学技术,需要重点掌握。 本文我会重点详解负载均衡的 5 大核心算法 @mikechen 我们先来看一张典型的集群和负载均衡架构图: 当一台机器不能承受访问压力时,我们大多会通过横向增加两台、或者多台服务器,来共同承担访问压力,来极大的降低后端的访问压力,提升用户的访...

Dubbo 原理和机制详解 (非常全面)

2022-10-24
阅读 3 分钟
1.2k
Dubbo是一款Java RPC 框架,致力于提供高性能的RPC远程服务调用方案。下面我重点详解Dubbo的原理机制@mikechen目录Dubbo核心功能Dubbo核心组件Dubbo的架构设计Dubbo调用流程Dubbo核心功能Dubbo主要提供了3大核心功能:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。1)远程方法调用网络通信框架...
封面图

雪花算法详解(原理优缺点及代码实现)

2022-10-13
阅读 2 分钟
1.5k
目录雪花算法简介雪花算法的优缺点雪花算法原理雪花算法代码实现雪花算法简介雪花算法,英文名为snowflake,翻译过来就是是雪花,所以叫雪花算法。在大自然雪花形成过程中,会形成不同的结构分支,所以说不存在两片完全一样的雪花,表示生成的id如雪花般独一无二。雪花算法,它最早是twitter内部使用的分布式环境下的唯...

什么是缓存雪崩?服务器雪崩的场景与解决方案

2022-10-10
阅读 3 分钟
826
目录什么是应用服务雪崩雪崩效应产生的几种场景缓存雪崩的解决方案雪崩的整体解决方案熔断设计隔离设计超时机制设计如何提前发现雪崩什么是应用服务雪崩雪崩问题分布式系统都存在这样一个问题,由于网络的不稳定性,决定了任何一个服务的可用性都不是 100% 的。当网络不稳定的时候,作为服务的提供者,自身可能会被拖死...

Java 读写锁 ReadWriteLock 原理与应用场景详解

2022-09-30
阅读 6 分钟
805
读写锁并不是JAVA所特有的读写锁(Readers-Writer Lock)顾名思义是一把锁分为两部分:读锁和写锁,其中读锁允许多个线程同时获得,因为读操作本身是线程安全的,而写锁则是互斥锁,不允许多个线程同时获得写锁,并且写操作和读操作也是互斥的。

RabbitMQ 原理和架构图解 (附 6 大工作模式)

2022-09-29
阅读 3 分钟
1.1k
为什么要使用RabbitMQ?1.解耦系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,过于麻烦。2.异步将消息写入消息队列,非必要的业务逻辑以异步的方式运行,加快响应速度。3.削峰并发量大的时候,所有的请求直接怼到数据库,造成数据库连接异常。关注「mikechen 的互联网架构」公众号...

Java线程同步的四种方式详解(建议收藏)

2022-09-28
阅读 5 分钟
505
​ Java线程同步属于Java多线程与并发编程的核心点,需要重点掌握,下面我就来详解Java线程同步的4种主要的实现方式@mikechen目录什么是线程同步线程同步的几种方式1、使用synchronized关键字2.使用ReentrantLock3.使用原子变量实现线程同步4.ThreadLocal实现线程同步什么是线程同步当使用多个线程来访问同一个数据时,将...

分布式ID详解(5种分布式ID生成方案)

2022-09-27
阅读 3 分钟
1.5k
如在金融、电商、支付、等产品的系统中,数据日渐增长,对数据分库分表后需要有一个唯一ID来标识一条数据或消息,数据库的自增ID显然不能满足需求,此时一个能够生成全局唯一ID的系统是非常必要的。

搞透 IOC,Spring IOC 看这篇就够了!

2022-09-26
阅读 3 分钟
825
IOC与AOP属于Spring的核心内容,如果想掌握好Spring你肯定需要对IOC有足够的了解 @mikechenIOC的定义IOC是Inversion of Control的缩写,多数书籍翻译成“控制反转”。IOC不是一种技术,只是一种思想,一个重要的面向对象编程的法则,它能指导我们如何设计出松耦合、更优良的程序。传统应用程序都是由我们在类内部主动创建...

消息队列MQ核心原理全面总结(11大必会原理)

2022-09-22
阅读 3 分钟
1.3k
消息队列已经逐渐成为分布式应用场景、内部通信、以及秒杀等高并发业务场景的核心手段,它具有低耦合、可靠投递、广播、流量控制、最终一致性 等一系列功能。

Mybatis一级缓存和二级缓存原理区别(图文详解)

2022-09-21
阅读 3 分钟
1.2k
Java面试经常问到Mybatis一级缓存和二级缓存,今天就给大家重点详解Mybatis一级缓存和二级缓存原理与区别@mikechenMybatis缓存缓存就是内存中的数据,常常来自对数据库查询结果的保存,使用缓存可以避免频繁与数据库进行交互,从而提高查询响应速度。MyBatis 提供了对缓存的支持,分为一级缓存和二级缓存,如下图所示:...

Kafka为什么性能这么快?4大核心原因详解

2022-09-20
阅读 2 分钟
885
Kafka 是基于操作系统 的页缓存(page cache)来实现文件写入的,我们也可以称之为 os cache,意思就是操作系统自己管理的缓存。

Spring AOP全面详解(超级详细)

2022-08-18
阅读 10 分钟
2.3k
AOP (Aspect Orient Programming),直译过来就是 面向切面编程,AOP 是一种编程思想,是面向对象编程(OOP)的一种补充。

9大性能优化经验总结,强烈建议收藏!

2022-08-17
阅读 5 分钟
788
有一些性能问题,完全是由于代码写的不合理,通过直接修改一下代码就能解决问题的,比如for循环次数过多、作了很多无谓的条件判断、相同逻辑重复多次等,这样的优化成本是最低的。

Java注解最全详解(超级详细)

2022-08-16
阅读 6 分钟
1.3k
Java注解是一个很重要的知识点,掌握好Java注解有利于学习Java开发框架底层实现。@mikechenJava注解定义Java注解又称Java标注,是在 JDK5 时引入的新特性,注解(也被称为元数据)。Java注解它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。Java注...

Java NIO全面详解(看这篇就够了)

2022-08-15
阅读 9 分钟
1.2k
Java NIO是Java1.4之后推出来的一套IO接口,NIO提供了一种完全不同的操作方式, NIO支持面向缓冲区的、基于通道的IO操作。

Java四大引用详解:强引用、软引用、弱引用、虚引用

2022-08-13
阅读 6 分钟
617
从JDK 1.2版本开始,对象的引用被划分为4种级别,从而使程序能更加灵活地控制对象的生命周期,这4种级别由高到低依次为:强引用、软引用、弱引用和虚引用。\

深入详解Mybatis的架构原理与6大核心流程

2022-08-12
阅读 4 分钟
652
如果你想要进入一线大厂,能够熟练使用 MyBatis 开发已经是一项非常基本的技能,同时大厂也更希望自己的开发人员深入了解 MyBatis 框架的原理和核心实现。

Java多线程超级详解(只看这篇就够了)

2022-08-11
阅读 9 分钟
1.2k
多线程能够提升程序性能,也属于高薪必能核心技术栈,本篇会全面详解Java多线程。@mikechen主要包含如下几点:基本概念很多人都对其中的一些概念不够明确,如同步、并发等等,让我们先建立一个数据字典,以免产生误会。进程在操作系统中运行的程序就是进程,比如你的QQ、播放器、游戏、IDE等等线程一个进程可以有多个线...

什么是幂等性?四种接口幂等性方案详解!

2022-08-10
阅读 3 分钟
2.9k
幂等性在我们的工作中无处不在,无论是支付场景还是下订单等核心场景都会涉及,也是分布式系统最常遇到的问题,除此之外,也是大厂面试的重灾区。知道了幂等性的重要性,下面我就详细介绍幂等性以及具体的解决方案,希望对大家有所帮助@mikechen什么是幂等性幂等是一个数学与计算机学概念,在数学中某一元运算为幂等时,...

JVM内存模型和结构详解(五大模型图解)

2022-08-08
阅读 4 分钟
798
JVM内存模型和Java内存模型都是面试的热点问题,名字看感觉都差不多,实际上他们之间差别还是挺大的。通俗点说,JVM内存结构是与JVM的内部存储结构相关,而Java内存模型是与多线程编程相关@mikechen目录什么是 JVM 为什么需要 JVM? JVM 内存模型 堆(Heap) 方法区(Method Area) 虚拟机栈 (JVM Stack) 本地方法栈 (Na...

JVM性能调优的6大步骤,及关键调优参数详解

2022-03-23
阅读 3 分钟
2.4k
JVM性能调优是一个非常重要的技能,本篇主要介绍JVM性能调优以下几点:1.JVM内存调优2.JVM性能调优方法3.JVM性能调优步骤4.JVM调优参数详解JVM内存调优对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数。1.Full GC会对整个堆进行整理,包括Young、Tenured和Perm。Full GC因为需要对整个堆进行回收,所以...

如何从0到1设计一个类Dubbo的RPC框架

2022-02-17
阅读 3 分钟
1.1k
之前分享了如何从0到1设计一个MQ消息队列,今天谈谈“如何从0到1设计一个Dubbo的RPC框架”,重点考验: 你对RPC框架的底层原理掌握程度。 以及考验你的整体RPC框架系统设计能力。RPC和RPC框架1.RPC(Remote Procedure Call)即远程过程调用, 主要解决远程通信间的问题,不需要了解底层网络的通信机制。2.RPC框架RPC框架负责...

Java泛型详解,史上最全图文详解!

2022-02-15
阅读 7 分钟
2k
Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。

深入详解Mybatis的架构原理与6大核心流程

2022-02-14
阅读 4 分钟
2k
如果你想要进入一线大厂,能够熟练使用 MyBatis 开发已经是一项非常基本的技能,同时大厂也更希望自己的开发人员深入了解 MyBatis 框架的原理和核心实现。

JVM完整详解:内存分配+运行原理+回收算法+GC参数等

2022-01-18
阅读 6 分钟
1.1k
不管是BAT面试,还是工作实践中的JVM调优以及参数设置,或者内存溢出检测等,都需要涉及到Java虚拟机的内存模型、内存分配,以及回收算法机制等,这些都是必考、必会技能。