自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 jvm复习知识点

jvm复习目录,垃圾回收

2025-03-05 15:33:06 208

原创 分布式系统--生成全局唯一的ID

以下是对UUID、数据库自增ID、号段模式、基于Redis实现、雪花算法以及第三方ID生成工具这六种方法的优缺点对比和使用场景分析,并以表格形式总结。原理:UUID是一个128位的值,通常以36个字符的字符串表示(例如,550e8400-e29b-41d4-a716-446655440000),通过算法生成,几乎不可能重复。原理:由Twitter开发的分布式ID生成算法,使用64位ID,包含时间戳、机器ID和序列号等部分。使用场景:适用于分布式系统需要唯一且有序ID的场景,例如微博ID、评论ID等。

2025-03-05 11:33:23 347

原创 Redis

集群模式主要包括以下几种:主从复制(Master-Slave Replication)、哨兵模式(Sentinel)以及Redis Cluster模式。三种集群模式的优缺点1. 主从复制模式优点:支持读写分离,master负责写操作,slave负责读操作,能提升读性能。数据备份,slave可作为master的副本,master故障时可手动切换到slave。缺点:master故障后需手动切换到slave,可能导致服务短暂中断。slave数据通过异步同步,可能出现数据不一致的情况。

2025-03-05 11:02:45 1598

原创 分布式事务

2PC:协调者指挥,参与者投票,一致才提交。3PC:多一个阶段,减少锁定,但复杂。XA:2PC 的标准实现,数据库支持。AT:自动 undo log,无锁高性能。TCC:业务层 Try、Confirm、Cancel,手动补偿。Saga:事务链+补偿,最终一致性。以上六种分布式事务实现方式各有优劣:2PC、3PC、XA 更适合数据库层面的强一致性场景,代码入侵低,但性能受限。AT 提供高性能和低代码入侵,适合支持 MVCC 的数据库。

2025-03-04 16:59:53 662

原创 一句话总结设计模式

Strategy(策略):使用接口即使用strategy,用于隔离变化,例如Spring中IOC(依赖反转)Decrator(装饰):常见于各种wrapper,常用于在原函数执行前后做一些额外的工作,例如定制输入/输出流、加解密、AOP等Factory Method(工厂方法):隔离创建对象的细节,使得创建对象的行为可扩展,一般配合singleton使用,例如commons的LogFactory。

2025-03-03 10:53:36 790

原创 微服务架构

微服务架构(Microservices Architecture)是一种现代软件开发方法,将应用拆分为多个小型、独立的服务,每个服务专注于单一功能,通过轻量级协议通信。以下我将详细讲解微服务架构的定义、特点、优势与挑战、核心组件、技术实现、使用场景以及与单体架构的对比,最后提供快速理解和记忆的方法。微服务架构是一种将应用分解为一系列小型、自治服务的设计模式,每个服务:3.1 优势3.2 挑战微服务架构依赖一系列组件协同工作:5.1 框架5.2 技术栈示例5.3 实现原理口诀类比记忆技巧总结如果需要具体代码示

2025-03-02 16:26:13 1874

原创 SpringCloud相关

SpringCloud 组件熟悉

2025-02-26 00:28:43 92

原创 MQ的设置

扩展阅读:更多配置细节可参考官方文档或中的源码解析。

2025-02-25 18:03:32 371

原创 kafka、rabbitmq、rocketmq的核心区别 使用场景详解是什么

kafka、rabbitmq、rocketmq的核心区别 使用场景详解是什么

2025-02-25 17:59:35 310

原创 MQ核心作用:异步、削峰、解耦使用场景详解

在异步通知的场景下,MQ能够帮助系统及时响应用户的请求,同时后台慢慢处理后续逻辑。例如,订单完成后发送优惠券,用户完成订单后,优惠券通过MQ异步发放,订单流程不会被拖慢。例如,电商系统中的订单与库存解耦,订单服务和库存服务通过MQ进行异步通信,避免耦合过高导致的问题。在高并发场景下,MQ可以有效地进行削峰处理。例如,电商秒杀活动中,大量用户同时请求,MQ通过把请求排队来平滑处理流量,避免服务器崩溃。通过以上分析可以看出,MQ在异步处理、削峰和解耦方面发挥着重要作用,是现代软件系统中不可或缺的技术之一。

2025-02-25 17:57:54 238

原创 rocketmq 和kafka的底层框架对比研究

NameServer:在RocketMQ中并没有采用选举Broker的策略,所以采用了无状态的NameServer来存储,由于NameServer是无状态的,集群节点之间并不会通信,所以上传数据的时候都需要向所有节点进行发送。另外,确保引用格式正确,每个点至少引用两个不同的来源。Step4: 如果其中某个阶段比如commit发送失败,rocketMQ会进行定时从Broker回查,本地事务的状态。同时,要指出两者的适用场景,如RocketMQ适合复杂业务,Kafka适合高吞吐日志。详细比较了架构组件,

2025-02-25 17:37:20 731

原创 ElasticSearch的client

4、elasticsearch-rest-high-level-client:6.4.3,高级客户端【es官方推荐】,依赖于低级客户端elasticsearch-rest-client和elasticsearch两个模块,使用面向对象的方式来形成dsl,和TransportClient不同的是,它是通过低级客户端的http协议和es服务器来交互。总的来说,High Level REST Client 是目前推荐使用的客户端,而 Transport Client 已经被废弃不建议使用。

2024-01-03 15:33:34 1299 1

原创 1.MQ选型

开源,横向扩展,性能,kafka 异步,批量。kafka 发消息不是立即发送,是等一等批量发送,延迟性比较高。系统中为什么使用MQ:异步,削峰,解耦列举出三个业务场景:缺点:保证消息队列的可用性。系统复杂性增加,如何保证数据的幂等性:重复消费。

2023-12-04 18:56:19 376

原创 设计模式--快速记忆

SOLIDD(S单一职责,O 开闭原则,L 里式替换,I: 接口隔离原则,D:依赖导致,D迪米特法则)设计模式:创建型(5中):2工厂(工厂方法,抽象工厂),构造者,原型,单例结构型 (7种):例如:扩展性(外观、组成、代理、装饰)、封装(适配器、桥接),享元模式(Flyweight)行为型(11种)1. 行为类模式使用继承机制在类间分派行为。2. 行为对象模式使用对象聚合来分配行为。

2023-11-15 00:16:43 56

原创 redis

一个基于内存的非关系型数据库。1.基于内存,2.单线程(瓶颈主要在IO,不在CPU,避免上下文切换),3.IO 使用 多路复用模型。4.数据结构简单。

2023-11-14 23:51:41 44

原创 分布式系统相关面试题

分布式系统:多个服务 部署在不同的服务器微服务: 一种服务治理理念,

2023-11-13 23:38:05 58

原创 Jvm面试题含答案

一半情况下在 堆内分配内存栈中 分配内存,对象中都是基本数据类型,逃逸分析 不会逃逸。JVM中如何判断一个常量是废弃常量?JVM中JIT是什么?JVM中什么是分布式垃圾回收(DGC)?它是如何工作的?JVM中堆的结构是什么样子的?什么是堆中的永久代(Perm Gen space)JVM中怎么获取 Java 程序使用的内存?堆使用的百分比?JVM中强引用、软引用、弱引用、虚引用是什么?JVM中堆的作用是什么?JVM中常用的 JVM 配置参数有哪些?

2023-11-12 23:30:32 48

原创 JVM 类加载

紧接着魔数的4个字节存储的是Class 文件的版本号。C2编译器是为长期运行的服务器端应用程序做性能调优的编译器,适用于执行时间较长或者对峰值性能有要求的程序,也称为Server Compiler,例如,服务器上长期运行的Java应用对稳定运行就有一定的要求。可以说,常量池是整个Class文件的基石。C1编译器是一个简单快速的编译器,主要的关注点在于局部性的优化,适用于执行时间较短或者对启动性能有要求的程序,也称Client Compiler,例如,eclipse 或者 idea中的 局部编译。

2023-11-12 00:46:46 614 1

空空如也

空空如也

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

TA关注的人

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