JVM 思考与总结
摘要:相关基础知识见: 深入理解 JVM -- 垃圾收集器与内存分配策略 新生代为什么需要两个 Survivor 区? 如果只有一个 Eden 区加一个 Survivor 区,那么 Minor GC 后 Eden 区还存活下来的对象复制到 Survivor 区。而 Survivor 区里的对象在这次 Mi
阅读全文
Springboot 启动过程
摘要:参考: rhyme : SPRINGBOOT启动流程及其原理 fhfirehuo: SpringBoot的启动流程 只会一点java : spring boot容器启动详解 二月_春风 :EnableAutoConfiguration注解的工作原理 Spring 框架就像一个家族,有众多衍生产品例如
阅读全文
RocketMQ 为什么会丢消息,如何保证消息不丢失
摘要:Producer 丢消息 1.同步发送 RocketMQ发送消息有三种模式,即同步发送,异步发送、单向发送。 同步发送消息时会同步阻塞等待Broker返回发送结果,如果发送失败不会收到发送结果SendResult,这种是最可靠的发送方式。 异步发送消息可以在回调方法中得知发送结果。 单向发送是消息发
阅读全文
RPC 框架
摘要:参考: 敖丙:《Dubbo系列》-Dubbo SPI机制 基本组成: Client (客户端):服务调用方。Server(服务端):服务提供方。Client Stub(客户端存根):存放服务端的消息,负责将客户端的请求参数打包成网络消息,然后通过网络发送给服务提供方。Server Stub(服务端存
阅读全文
Spring —— AOP
摘要:AOP有两种实现方式:静态代理和动态代理。 静态代理:代理类在编译阶段生成,在编译阶段将通知织入Java字节码中,也称编译时增强。AspectJ使用的是静态代理。 缺点:代理对象需要与目标对象实现一样的接口,并且实现接口的方法,会有冗余代码。同时,一旦接口增加方法,目标对象与代理对象都要维护。 动态
阅读全文
分布式事务
摘要:参考: 《凤凰架构》,原书 https://icyfenix.cn/ 本节所说的分布式事务(Distributed Transaction)特指多个服务同时访问多个数据源的事务处理机制。 CAP定理(Consistency、Availability、Partition Tolerance Theor
阅读全文
分布式ID
摘要:参考: JavaGuide:《分布式 id》 1、数据库主键自增 优点 :实现起来比较简单、ID 有序递增、存储消耗空间小 缺点 : 支持的并发量不大、存在数据库单点问题(可以使用数据库集群解决,不过增加了复杂度)、ID 没有具体业务含义、安全问题(比如根据订单 ID 的递增规律就能推算出每天的订单
阅读全文