发布了文章2022-12-22
Redis提供了三种集群方式,下面我重点详解Redis三种集群方式的原理及优缺点等区别@mikechen目录[**]()Redis主从复制模式Redis哨兵模式Redis集群模式Redis主从复制模式1.Redis主从复制定义主从模式是三种模式中最简单的,主从模式指的是使用一个Redis实例作为主机,其...
发布了文章2022-11-02
G1 同 CMS 垃圾回收器一样,关注最小时延的垃圾回收器,适合大尺寸堆内存的垃圾收集。G1 最大的特点是引入分区的思路,弱化了分代的概念,合理利用垃圾收集各个周期的资源,解决了其他收集及 CMS 的很多缺陷。
发布了文章2022-11-01
目录一:Kafka 简介二:Kafka 基本架构三:Kafka 基本原理四:Zookeeper 在 kafka 的作用五:Kafka 的特性六:Kafka 的应用场景一:Kafka 简介Apache Kafka 是分布式发布-订阅消息系统,在 kafka 官网上对 kafka 的定义:一个分布式发布-订阅消息传递系统。Kafka 最...
发布了文章2022-10-31
动态代理在 Java 中有着广泛的应用,例如:Spring AOP 面向切面编程,Hibernate 数据查询、以及 RPC Dubbo 远程调用等,都有非常多的实际应用@mikechen
发布了文章2022-10-25
一个看起来很简单的应用,可能需要数十或数百个服务来支撑,一个请求就要多次服务调用。当请求变慢、或者不能使用时,我们是不知道是哪个后台服务引起的。这时,我们使用 Zipkin 就能解决这个问题。
发布了文章2022-10-25
负载均衡,是分布式架构的必备技术,也是进阶的 必学技术,需要重点掌握。 本文我会重点详解负载均衡的 5 大核心算法 @mikechen 我们先来看一张典型的集群和负载均衡架构图: 当一台机器不能承受访问压力时,我们大多会通过横向增加两台、或者多台服务器,来共同承担...
发布了文章2022-10-24
Dubbo是一款Java RPC 框架,致力于提供高性能的RPC远程服务调用方案。下面我重点详解Dubbo的原理机制@mikechen目录Dubbo核心功能Dubbo核心组件Dubbo的架构设计Dubbo调用流程Dubbo核心功能Dubbo主要提供了3大核心功能:面向接口的远程方法调用,智能容错和负载均衡,...
发布了文章2022-10-13
目录雪花算法简介雪花算法的优缺点雪花算法原理雪花算法代码实现雪花算法简介雪花算法,英文名为snowflake,翻译过来就是是雪花,所以叫雪花算法。在大自然雪花形成过程中,会形成不同的结构分支,所以说不存在两片完全一样的雪花,表示生成的id如雪花般独一无二。雪...
发布了文章2022-10-10
目录什么是应用服务雪崩雪崩效应产生的几种场景缓存雪崩的解决方案雪崩的整体解决方案熔断设计隔离设计超时机制设计如何提前发现雪崩什么是应用服务雪崩雪崩问题分布式系统都存在这样一个问题,由于网络的不稳定性,决定了任何一个服务的可用性都不是 100% 的。当网...
发布了文章2022-09-30
读写锁并不是JAVA所特有的读写锁(Readers-Writer Lock)顾名思义是一把锁分为两部分:读锁和写锁,其中读锁允许多个线程同时获得,因为读操作本身是线程安全的,而写锁则是互斥锁,不允许多个线程同时获得写锁,并且写操作和读操作也是互斥的。
发布了文章2022-09-29
为什么要使用RabbitMQ?1.解耦系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,过于麻烦。2.异步将消息写入消息队列,非必要的业务逻辑以异步的方式运行,加快响应速度。3.削峰并发量大的时候,所有的请求直接怼到数据库,造成数...
发布了文章2022-09-28
Java线程同步属于Java多线程与并发编程的核心点,需要重点掌握,下面我就来详解Java线程同步的4种主要的实现方式@mikechen目录什么是线程同步线程同步的几种方式1、使用synchronized关键字2.使用ReentrantLock3.使用原子变量实现线程同步4.ThreadLocal实现线程同步...
发布了文章2022-09-27
如在金融、电商、支付、等产品的系统中,数据日渐增长,对数据分库分表后需要有一个唯一ID来标识一条数据或消息,数据库的自增ID显然不能满足需求,此时一个能够生成全局唯一ID的系统是非常必要的。
发布了文章2022-09-26
IOC与AOP属于Spring的核心内容,如果想掌握好Spring你肯定需要对IOC有足够的了解 @mikechenIOC的定义IOC是Inversion of Control的缩写,多数书籍翻译成“控制反转”。IOC不是一种技术,只是一种思想,一个重要的面向对象编程的法则,它能指导我们如何设计出松耦合、更...
发布了文章2022-09-22
消息队列已经逐渐成为分布式应用场景、内部通信、以及秒杀等高并发业务场景的核心手段,它具有低耦合、可靠投递、广播、流量控制、最终一致性 等一系列功能。
发布了文章2022-09-21
Java面试经常问到Mybatis一级缓存和二级缓存,今天就给大家重点详解Mybatis一级缓存和二级缓存原理与区别@mikechenMybatis缓存缓存就是内存中的数据,常常来自对数据库查询结果的保存,使用缓存可以避免频繁与数据库进行交互,从而提高查询响应速度。MyBatis 提供了...
发布了文章2022-09-20
Kafka 是基于操作系统 的页缓存(page cache)来实现文件写入的,我们也可以称之为 os cache,意思就是操作系统自己管理的缓存。
发布了文章2022-09-19
同步操作如果遇到一个耗时的方法,需要阻塞等待,那么我们有没有办法解决呢?让它异步执行,下面我会详解异步及实现@mikechen目录什么是异步?一、线程异步二、Future异步三、CompletableFuture异步四、SpringBoot @Async异步五、Guava异步Java异步编程小结什么是...
发布了文章2022-08-18
AOP (Aspect Orient Programming),直译过来就是 面向切面编程,AOP 是一种编程思想,是面向对象编程(OOP)的一种补充。
发布了文章2022-08-17
有一些性能问题,完全是由于代码写的不合理,通过直接修改一下代码就能解决问题的,比如for循环次数过多、作了很多无谓的条件判断、相同逻辑重复多次等,这样的优化成本是最低的。