摘要: 不管是BAT面试,还是工作实践中的JVM调优以及参数设置,或者内存溢出检测等,都需要涉及到Java虚拟机的内存模型、内存分配,以及回收算法机制等,这些都是必考、必会技能。 JVM内存模型 JVM内存模型可以分为两个部分,如下图所示,堆和方法区是所有线程共有的,而虚拟机栈,本地方法栈和程序计数器则是线 阅读全文
posted @ 2022-01-18 08:34 mikechen的互联网架构 阅读(754) 评论(0) 推荐(4) 编辑
摘要: Redis提供了三种集群方式,下面我重点详解Redis三种集群方式的原理及优缺点等区别@mikechen 目录 Redis主从复制模式 Redis哨兵模式 Redis集群模式 Redis主从复制模式 1.Redis主从复制定义 主从模式是三种模式中最简单的,主从模式指的是使用一个Redis实例作为主 阅读全文
posted @ 2022-12-22 11:03 mikechen的互联网架构 阅读(3930) 评论(0) 推荐(0) 编辑
摘要: G1(Garbage First)垃圾收集器,是目前垃圾回收技术最前沿的成果之一。G1 同 CMS 垃圾回收器一样,关注最小时延的垃圾回收器,适合大尺寸堆内存的垃圾收集。但G1 最大的特点是引入分区的思路,弱化了分代的概念,合理利用垃圾收集各个周期的资源,解决了其他收集及 CMS 的很多缺陷。官方推荐使用 G1 来代替 CMS。 阅读全文
posted @ 2022-11-02 16:04 mikechen的互联网架构 阅读(956) 评论(0) 推荐(1) 编辑
摘要: 图文详解 Kafka ,一文了解掌握 Kafka 的基本架构、原理、特性、应用场景,以及 Zookeeper 在 kafka 的作用。 阅读全文
posted @ 2022-11-01 09:51 mikechen的互联网架构 阅读(3044) 评论(0) 推荐(3) 编辑
摘要: ​ 动态代理在 Java 中有着广泛的应用,例如:Spring AOP 面向切面编程,Hibernate 数据查询、以及 RPC Dubbo 远程调用等,都有非常多的实际应用@mikechen 目录 Java 动态代理原理 JDK 原生动态代理 CGLib 动态代理实现 JDK 动态代理与 CGLi 阅读全文
posted @ 2022-10-31 09:57 mikechen的互联网架构 阅读(1136) 评论(0) 推荐(1) 编辑
摘要: 一个看起来很简单的应用,可能需要数十或数百个服务来支撑,一个请求就要多次服务调用。 当请求变慢、或者不能使用时,我们是不知道是哪个后台服务引起的。 这时,我们使用 Zipkin 就能解决这个问题。 由于业务访问量的增大,业务复杂度增加,以及微服务架构和容器技术的兴起,要对系统进行各种拆分。 微服务系 阅读全文
posted @ 2022-10-25 17:49 mikechen的互联网架构 阅读(5526) 评论(0) 推荐(3) 编辑
摘要: 5大负载均衡算法 (原理图解) 负载均衡,是分布式架构的必备技术,也是进阶的必学技术,需要重点掌握。本文深入详解负载均衡的5大核心算法,我们先来看一张典型的集群和负载均衡架构图:当一台机器不能承受访问压力时,我们大多会通过横向增加两台、或者多台服务器,来共同承担访问压力,来极大的降低后端的访问压力,提升用户的访问性能。但是,从一台扩展到多台服务器后,如何将客户端的流量、分发到具体的服务器呢?是通过服务器 1 、还是服务器 3 ?这就涉及到了具体的负载均衡算法。 阅读全文
posted @ 2022-10-25 09:41 mikechen的互联网架构 阅读(846) 评论(0) 推荐(2) 编辑
摘要: Dubbo 原理和机制详解 (非常全面) Dubbo 是一款 Java RPC 框架,致力于提供高性能的 RPC 远程服务调用方案,是开发人员必知必会的技术之一。本文深入详解 Dubbo 的原理机制,带你了解并掌握:Dubbo核心功能、Dubbo核心组件、Dubbo的架构设计、Dubbo调用流程、Dubbo核心功能等核心知识点。Dubbo主要提供了3大核心功能:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。1)远程方法调用:网络通信框架,提供对多种NIO框架抽象封装,包括“同步转异步”和“请求-响应”模式的信息交换方式。 2)智能容错和负载均衡:提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。 阅读全文
posted @ 2022-10-24 09:29 mikechen的互联网架构 阅读(1533) 评论(1) 推荐(1) 编辑
摘要: 目录 雪花算法简介 雪花算法的优缺点 雪花算法原理 雪花算法代码实现 雪花算法简介 雪花算法,英文名为snowflake,翻译过来就是是雪花,所以叫雪花算法。 在大自然雪花形成过程中,会形成不同的结构分支,所以说不存在两片完全一样的雪花,表示生成的id如雪花般独一无二。 雪花算法,它最早是twitt 阅读全文
posted @ 2022-10-13 09:45 mikechen的互联网架构 阅读(9317) 评论(1) 推荐(5) 编辑
摘要: 目录 什么是应用服务雪崩 雪崩效应产生的几种场景 缓存雪崩的解决方案 雪崩的整体解决方案 熔断设计 隔离设计 超时机制设计 如何提前发现雪崩 什么是应用服务雪崩 雪崩问题 分布式系统都存在这样一个问题,由于网络的不稳定性,决定了任何一个服务的可用性都不是 100% 的。当网络不稳定的时候,作为服务的 阅读全文
posted @ 2022-10-10 10:14 mikechen的互联网架构 阅读(1141) 评论(0) 推荐(3) 编辑
摘要: Java并发编程提供了读写锁,主要用于读多写少的场景,今天我就重点来讲解读写锁的底层实现原理@mikechen 什么是读写锁? 读写锁并不是JAVA所特有的读写锁(Readers-Writer Lock)顾名思义是一把锁分为两部分:读锁和写锁,其中读锁允许多个线程同时获得,因为读操作本身是线程安全的 阅读全文
posted @ 2022-09-30 08:58 mikechen的互联网架构 阅读(3354) 评论(0) 推荐(3) 编辑