- 博客(8)
- 收藏
- 关注
原创 Sentinel源码分析
例如,我们在order-service服务中,将的方法标记为一个资源。1)首先在order-service中引入sentinel依赖</</</2)然后配置Sentinel地址spring:cloud:sentinel:transport:dashboard: localhost:8089 # 这里我的sentinel用了8089的端口3)修改OrderService类的queryOrderById方法// 创建Entry,标记资源,资源名为resource1。
2025-04-09 15:01:12
1225
原创 Nacos源码分析
protobuf的全称是Protocol Buffer,是Google提供的一种数据序列化协议,这是Google官方的定义:Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据序列化,很适合做数据存储或 RPC 数据交换格式。它可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。可以简单理解为,是一种跨语言、跨平台的数据传输格式。与json的功能类似,但是无论是性能,还是数据大小都比json要好很多。
2025-04-08 17:32:25
1388
原创 volatile关键字的特性?volatile能否保证线程安全?
volatile能确保变量在多线程中是可见的,并且提供对变量读写的顺序性保证。它无法保证线程安全,尤其是不能解决原子性问题,因此如果操作涉及多个步骤,需要通过其他机制(如或Atomic类)来保证线程安全。
2025-03-26 15:53:08
630
原创 分布式事务
Seata 是 2019 年 1 月份蚂蚁金服和阿里巴巴共同开源的分布式事务解决方案。致力于提供高性能和简单易用的分布式事务服务,为用户打造一站式的分布式解决方案。官网地址: http://seata.io/,其中的文档、播客中提供了大量的使用说明、源码分析。
2025-03-23 11:13:51
1407
原创 RabbitMQ如何保证消息不丢失?
一个开源的消息代理软件,实现了高级消息队列协议(AMQP),用于在分布式系统中传递消息。它是一个功能强大的消息队列工具,可以用于在不同应用程序、服务或组件之间传递消息,实现异步通信。RabbitMQ的主要作用包括:消息队列:RabbitMQ充当消息队列的角色,可以存储和转发消息,实现生产者和消费者之间的解耦,提高系统的灵活性和可扩展性。异步通信:通过RabbitMQ,可以实现应用程序之间的异步通信,不同组件之间可以通过消息进行交互,而不需要直接调用对方的接口。
2025-03-19 23:31:04
1274
原创 Redis中的缓存穿透、缓存击穿和缓存雪崩
给某一个key设置了过期时间,当key过期的时候,恰好这时间点对这个key有大量的并发请求过来,这些并发的请求可能会瞬间把DB压垮缓存雪崩是指在同一时段大量的缓存key同时失效或者Redis服务宕机,导致大量请求到达数据库,带来巨大压力。
2025-03-18 00:41:30
556
原创 线程池相关面试题
线程池是用来管理和复用线程的工具,他可以减少线程的创建和销毁开销。在java中,ThreadPoolExecutor是线程池的核心实现,它通过核心线程数、最大线程数、 任务队列和拒绝策略来控制线程的创建和执行。举个例子:就像你开了一家餐厅,线程池就相当于固定数量的服务员,顾客(任务)来了就安排空闲的服务员(线程)处理,避免了频繁招人和解雇的成本。
2025-03-16 22:12:35
861
原创 MySQL事务特性、并发事务问题及解决方式
如果事务完成后,账户A扣款,账户B增款,且这些变化在数据库的完整性约束下是合理的(如没有出现负余额),则事务被认为保持了一致性。在银行转账的例子中,如果一个用户正在向账户B转账 1000 元,同时另一个用户也在从账户B转账,那么隔离性保证这两个事务之间的数据不会相互干扰,比如事务A看到的是事务B提交前或提交后的状态。如果在从账户A扣除 1000 元后,出现了故障(例如系统崩溃),那么不能只扣除账户A的金额,而不对账户B进行相应的增加操作。onsistency):事务完成时,必须使所有的数据都保持一致状态。
2025-03-14 17:00:09
364
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅