摘要: HashMap HashMap 继承自 AbstractMap,实现了 Map 接口,基于哈希表实现,元素以键值对的方式存储,允许键和值为 null。因为 key 不允许重复,因此只能有一个键为 null。HashMap 不能保证放入元素的顺序,它是无序的,和放入的顺序并不相同。HashMap 是线 阅读全文
posted @ 2024-02-29 14:55 低吟不作语 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 为什么使用消息队列? 以用户下单购买商品的行为举例,在使用微服务架构时,我们需要调用多个服务,传统的调用方式是同步调用,这会存在一定的性能问题 使用消息队列可以实现异步的通信方式,相比于同步的通信方式,异步的方式可以让上游快速成功,极大提高系统的吞吐量 消息队列的使用场景有如下: 异步处理:以上述用 阅读全文
posted @ 2024-02-27 16:45 低吟不作语 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 概述 随着互联网的发展,软件系统由原来的单体应用转变为分布式应用。分布式系统把一个单体应用拆分为可独立部署的多个服务,因此需要服务与服务之间远程协作才能完成事务操作。这种分布式系统下不同服务之间通过远程协作完成的事务称之为分布式事务,例如用户注册送积分事务、创建订单减库存事务,银行转账事务等都是分布 阅读全文
posted @ 2024-02-13 22:32 低吟不作语 阅读(269) 评论(0) 推荐(3) 编辑
摘要: 概述 所谓接口幂等性就是:在特定场景下,同一条件的多次接口调用,保证操作只执行一次,如果接口没有保证幂等性,在以下场景就会产生问题 前端重复提交:用户进行注册、创建个人信息等操作,由于网络抖动导致页面没有及时响应,用户认为没有成功而多次点击提交按钮,发生重复提交表单请求 接口超时重试:提供外部系统调 阅读全文
posted @ 2024-02-10 14:42 低吟不作语 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 转载自:https://blog.csdn.net/huyuyang6688/article/details/123028254 概述 MVCC 全称 Mutil-Version Concurrency Control,多版本并发控制,是一种并发控制方法,旨在减少读写操作的冲突 我们知道,当有多个事 阅读全文
posted @ 2024-01-31 16:35 低吟不作语 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 什么是死锁? 死锁是指两个或多个进程在执行过程中,因争夺资源而造成的一种相互等待的现象,如果没有外力干涉,这些进程将永远无法继续执行 死锁通常发生在多个进程试图同时访问同一资源而无法获取的情况下,例如,进程 A 需要访问资源 C,进程 B 需要访问资源 D,如果进程 A 获取了资源 C 的锁,进程 阅读全文
posted @ 2024-01-23 16:17 低吟不作语 阅读(247) 评论(0) 推荐(1) 编辑
摘要: 所谓高并发系统,是指能同时处理大量并发请求,并及时响应,从而保证系统的高性能和高可用 那么我们在设计一个高并发系统时,应该考虑哪些方面呢? 1. 搭建集群 如果你只部署一个应用,只部署一台服务器,那抗住的流量请求是非常有限的。并且,单体的应用,有单点的风险,如果它挂了,那服务就不可用了 因此,设计一 阅读全文
posted @ 2024-01-15 16:29 低吟不作语 阅读(261) 评论(0) 推荐(1) 编辑
摘要: 概述 当我们操作 Redis 发现耗时较长时,原因可能有两个: 服务间存在网络延迟 Redis 服务本身存在问题 如果是第一种情况,那么所有服务都会发生网络延迟,只需要联系运维处理即可,这里主要讨论第二种情况 Redis 基准性能测试 基准性能指 Redis 在一台负载正常的机器上的最大响应延迟和平 阅读全文
posted @ 2024-01-10 16:51 低吟不作语 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 概述 当我们在使用缓存时,如果发生数据变更,那么你需要同时操作缓存和数据库,而它们两个又分属不同的系统,因此无法做到同时操作成功或失败,因此在并发读写下很可能出现缓存与数据库数据不一致的情况 理论上可以通过分布式事务保证同时操作成功或失败,但这会影响系统性能,一般很少使用。虽然没办法做到缓存和数据库 阅读全文
posted @ 2024-01-03 15:13 低吟不作语 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 概述 ThreadLocal 意为本地线程变量,即该变量只属于当前线程,对其他线程隔离 我们知道,一个普通变量如果被多线程访问会存在存在线程安全问题,这时我们可以使用 Synchronize 来保证该变量某一时刻只能有一个线程访问,从而解决并发安全问题 但如果这个变量并不需要被共享,那么就可以使用 阅读全文
posted @ 2023-12-12 11:31 低吟不作语 阅读(133) 评论(0) 推荐(0) 编辑