- 博客(10)
- 收藏
- 关注
原创 2017年前端面试题整理汇总100题
引用计数的策略是跟踪记录每个值被使用的次数,当声明了一个 变量并将一个引用类型赋值给该变量的时候这个值的引用次数就加1,如果该变量的值变成了另外一个,则这个值得引用次数减1,当这个值的引用次数变为0的时 候,说明没有变量在使用,这个值没法被访问了,因此可以将其占用的空间回收,这样垃圾回收器会在运行的时候清理掉引用次数为0的值占用的空间。是一个比较完善的前端MVW框架,包含模板,数据双向绑定,路由,模块化,服务,依赖注入等所有功能,模板功能强大丰富,并且是声明式的,自带了丰富的 Angular 指令。
2025-01-22 14:21:35
843
原创 分布式系统改造方案——数据篇
说下实操,假设我们现在修改了用户信息,同时要修改用户的缓存,在 DB 更新成功之后我们可以往 mq 发送一个事件(要保证发送 MQ 和更新 DB 在一个事务内),MQ 再接收到用户基础信息,异步去处理更新用户的缓存,如果这个过程消费失败了,mq 会帮我们实现重试机制,这里不用担心消息丢失的问题,大部分厂商的队列在没有消息发送成功时都已经落盘,可靠性还是能保证的(除非宕机,停电,异步刷盘这类)。但是随之而来带来很多新的问题,历史数据迁移问题、用户信息查询问题等等。先说说历史数据迁移吧。
2025-01-15 20:43:13
684
原创 分布式幂等设计方案_为更新的数据设置前置条件 幂等
幂等设计作为网络通信重要的一环,在消息队列的使用中、在接口调用的场景中,我们或多或少的都要对自己提供的接口进行幂等设计。当我们的接口涉及到金额相关的操作。我们一定要考虑幂等,不然就可能存在。退款多退、订单多下、佣金多发等重大生产事故。
2025-01-15 20:39:33
969
原创 分布式事物:第一章:分布式事物简介
数据库进行任何写入操作的时候都是要先写日志的,同样的道理,我们在执行事务的时候数据库首先会记录下这个事务的redo操作日志,然后才开始真正操作数据库,在操作之前首先会把日志文件写入磁盘,那么当突然断电的时候,即使操作没有完成,在重新启动数据库时候,数据库会根据当前数据的情况进行undo回滚或者是redo前滚,这样就保证了数据的强一致性。为什么要提到这个知识点呢?一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。
2025-01-15 20:35:52
440
原创 【高并发】高并发分布式锁架构解密,不是所有的锁都是分布式锁(升级版)!!
在很多业务场景下,我们编写的应用程序中会存在很多的的问题。而我们在高并发程序中,引入锁,就是为了解决这些资源竞争的问题。电商超卖问题这里,我们可以列举一个简单的业务场景。比如,在电子商务(商城)的业务场景中,提交订单购买商品时,首先需要查询相应商品的库存是否足够,只有在商品库存数量足够的前提下,才能让用户成功的下单。下单时,我们需要在库存数量中减去用户下单的商品数量,并将库存操作的结果数据更新到数据库中。整个流程我们可以简化成下图所示。
2025-01-15 04:33:41
611
原创 【高并发】通过ThreadPoolExecutor类的源码深度解析线程池执行任务的核心流程
return;//如果线程池处于RUNNING状态,则将任务添加到阻塞队列中//再次获取线程池的状态和线程池中线程的数量,用于二次检查//如果线程池没有未处于RUNNING状态,从队列中删除任务if (!//执行拒绝策略//如果线程池为空,则向线程池中添加一个线程//任务队列已满,则新增worker线程,如果新增线程失败,则执行拒绝策略else if (!整个任务的执行流程,我们可以简化成下图所示。
2025-01-15 04:30:00
580
原创 【题目集1】找不重复的数字,模拟实现aoti,宏实现offsetof_aoti 题目
一个数组中只有两个数字只出现一次,其他的数字都是出现两次,编写一个函数找出这两个只出现一次的数字的函数。这道题的具体思路就是用异或的思想来解决。什么是异或:对于两个数字,相同为0,相异为1。
2025-01-15 04:26:18
297
原创 TCP 协议(包含三次握手,四次挥手)
②③情况:丢包的两种情况,对于发送方来说无法确定是哪种情况,因此,进行统一处理:当发送了一条数据之后,TCP 内部就会自动启动一个定时器,达到一定时间也没收到 ACK,定时器就会自动触发重传消息的动作 ——上述情况不严谨,真实的 TCP 还不一样,TCP 是面向字节流的,此处的编号并不是按照一条两条来编的,而是按照字节来编号的 (每个字节有一个编号)接收方收到数据后,是知道数据所带着的序号的,根据序号给出确认序号(告诉发送方下次给我发的序号),发送给发送方,发送方就知道接收方收到了哪些数据。
2025-01-14 02:32:00
1047
原创 TCP 协议(包含三次握手,四次挥手)(1)
谁主动断开连接,谁进入 TIME-WAIT 状态,此时该主机已经完成了四次挥手的过程,但仍不能立刻断开连接,而是要以 TIME-WAIT 状态来保持连接一段时间之后,再彻底释放连接 (处理最后一个 ACK 丢包之后重传的问题)②③情况:丢包的两种情况,对于发送方来说无法确定是哪种情况,因此,进行统一处理:当发送了一条数据之后,TCP 内部就会自动启动一个定时器,达到一定时间也没收到 ACK,定时器就会自动触发重传消息的动作 ——一种是 ACK 丢失,重传就意味着接收方收到了相同的数据。
2025-01-14 02:28:18
1085
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅