- 博客(71)
- 收藏
- 关注
原创 Vue2的生命周期
Vue2的生命周期主要是指Vue实例从创建、挂载、更新到销毁的整个过程。并为每个过程提供了对应的生命周期钩子函数,允许在不同阶段执行自定义任务,从而更好地控制组件的行为和资源管理。
2025-09-25 11:09:20
381
原创 js事件循环
不阻塞主线程:事件循环的异步核心是将耗时的异步操作交由其他线程处理。有序且可预测:回调函数顺序进入对应的任务队列在主线程排队执行,避免了复杂的多线程竞争和锁。
2025-09-20 21:55:48
355
原创 原型和原型链
js中的类与继承实质上是通过原型和原型链实现的:将函数视为对象,通过对象的属性相互关联起来初始化时的数据才会被记录(上图的形式),未定义则为undefined,例如下图。
2025-09-12 19:08:29
1338
原创 浏览器是如何渲染页面的?
前置dom树构建 考虑z-index的分层和3d效果,可使用开发者工具的layer查看分层情况,不同层级最终叠加在同一个平面中。
2025-09-10 10:11:13
181
原创 Promise
(value)并改变promise状态(state)为fulfilled。this始终指向promise对象。(reason)并改变promise状态(state)为rejected。this始终指向promise。resolvePromise方法用于解析回调结果并。then方法是解决回调地狱的核心。
2025-09-08 09:29:25
855
原创 浏览器是如何构建dom树的?
数据库根据sql文件构建树时也会经历类似的过程,将众多字符识别并拆解为一个个token单元,再根据token单元构建对应的树。,则会启用渲染进程将网络进程加载的这些html文件进行解析。浏览器通过http请求服务器获取响应后,
2025-08-24 16:21:51
351
原创 非对称加密
(但不知道这两个质数具体值就无法通过联系计算出公钥私钥的乘积,也就无法计算出私钥),相当于将公钥和私钥的逆推上了一层保险,想要获取这两个质数只能让当前计算机难以负荷的运算量进行枚举。,会和朋友约定一种独特的方式(例如使用拼音并将字母移位,例如a->c,b->d),亦或是直接创造“新语言”(用特定的图案或数字来替代字母或汉字,并将。而后按照博主的规则进行加减乘除,取后几位继续加减乘除,最后得到我们最开始给出的数字。(加密和解密用同一个密钥),也就是说通信的双方加密和解密所用的方式是。即是观众所想的数字。
2025-08-23 18:58:14
401
原创 消息队列——概念
消息队列三大核心作用解析:电商系统实战案例 摘要: 消息队列在分布式系统中发挥关键作用,主要体现在三大方面:1)解耦服务,订单服务通过消息队列异步通知库存和通知服务;2)异步处理,实现库存扣减与消息发送并行执行;3)流量削峰,应对秒杀场景的高并发请求。RocketMQ作为高性能消息中间件,支持发布/订阅模型,具有毫秒级延迟、高可用性和10亿级消息堆积能力。其核心组件包括Topic、MessageQueue和消费者组,通过消息确认机制保障可靠性,通过顺序消息和延迟消息满足特定业务场景。死信队列机制有效处理消费
2025-06-11 13:58:56
841
原创 IOC和AOP
代理类和目标类需要实现同一个接口,并重写InvokationHandler类的invoke方法来实现增强逻辑。最后通过Proxy类传入目标接口和反射处理器,调用newInstance方法生成代理对象,拦截方法调用进行增强。然后使用Enhancer类指定目标类为父类并指定对应的MethodInvokeHandler处理器,调用create方法生成代理对象,拦截方法调用进行增强。,需要实现MethodInvokeHandler接口,重写对应的invoke方法来实现增强逻辑,,按需求自动创建对象。
2025-06-10 16:29:45
341
原创 SpringCloud——微服务
为了预防某些功能出现负荷过载或响应慢的情况,在其内部暂时舍弃一些非核心接口和数据的请求,直接返回一个提前准备号的错误处理信息,这样虽然有损于服务,但保证了整个系统的稳定性和可用性。服务器压力剧增时,根据实际业务使用情况以及流量,对一些服务和页面有策略的不处理或使用简单方式处理,从而释放服务器资源以保证核心业务的正常高效运行。高峰期为保证核心功能服务的可用性,就需要对某些服务降级处理。,进而导致A的线程池满,最终导致全链路微服务的崩溃和不可用。所以当某个服务不可用或响应超时时,例如某服务链路为A—B—C,
2025-06-08 14:20:49
819
原创 SpringCloud——Nacos
Nacos实现微服务动态治理的核心功能及机制 摘要: Nacos作为服务治理平台,提供三大核心能力:服务注册与发现(支持动态实例注入)、配置集中管理(无需重启即时生效)及健康监测机制。服务健康检查采用双模式:旧版基于HTTP短连接(5秒心跳,30秒剔除),新版升级为gRPC长连接(3秒活跃检测,20秒超时剔除)。注册流程包含手动/自动两种方式,其中SpringCloud项目通过starter包可实现自动注册。实例分为临时(默认)与非临时两种类型,前者依赖心跳自动维护,后者需手动注销且持久化存储,分别适用于动
2025-06-05 23:05:29
486
原创 SpringCloud——OpenFeign
OpenFeign是基于Spring的声明式调用的HTTP客户端,大大简化了编写Web服务客户端的过程,用于快速构建http请求调用其他服务模块。同时也是spring cloud默认选择的服务通信工具。
2025-06-05 21:14:15
519
原创 虚拟机数据挂载映射
摘要:在云服务器部署Redis时,由于直接使用本地命令创建Docker容器并挂载,导致宿主机缺少配置文件而创建空目录,使配置失效。数据挂载需确保宿主机文件正确才能正常映射,否则可能因文件类型不同导致映射失败。此外,默认0.0.0.0绑定会将端口暴露给所有IP,存在安全隐患。正确做法是修改配置文件绑定127.0.0.1,并配合云服务器防火墙仅开放6379端口给特定IP,实现精确访问控制。该案例提醒部署时需注意配置文件路径和网络安全设置。
2025-05-29 19:24:13
276
原创 JVM——垃圾回收
单次STW时间更短但更频繁或允许用户线程和GC线程并发,对客户端交互的响应速度更快。(1mb~32mb,可通过-XX:GHeapRegionSize调整),并。单次STW时间更长,但次数少,适合计算量大且交互不多的场景。类似于ParNew回收器,但是使用Region。,旨在减少STW时间,适用于。(类似于深度搜索),
2025-05-23 13:45:00
1188
原创 JVM——内存模型
当Eden区满或Survivor区空间不足时,会触发Minor GC,回收Eden区中的垃圾对象,将年龄较大(超过15)的对象晋升到老年代中。不属于JVM运行时数据区的一部分,通过NIO类引入,是一种堆外内存,可显著提高IO性能。老年代空间不足时,会触发Major GC的CMS并发回收,并发回收失败则触发full GC。,可能会抛出StackOverflowError(栈过深,超出栈容量)和OOM异常。某些jvm实现(如G1垃圾收集器),为大对象分配了专门的区域。,在虚拟机启动时创建,,并增加它们的年龄。
2025-05-22 15:27:53
962
原创 Redis——缓存雪崩、击穿、穿透
业务线程处理用户请求时,如果发现访问的数据不在Redis里,则加入互斥锁,,若此时有大量请求,都会直接访问到数据库,导致数据库压力倍增甚至宕机。查询时,分别计算出数据N个哈希值对应的位置并判断是否全为1。缓存中的某个热点数据过期,此时大量请求直接访问到数据库。当前Redis宕机后依然可通过其他从节点获取缓存。发生缓冲雪崩或击穿时,数据库中是有对应数据的,而。但数据库中不存在的数据在布隆过滤器中就一定不存在。,而不是等待用户来触发缓存构建,这就是所谓的。,避免通过查询数据库来判断。,造成无响应的情况。
2025-05-17 21:14:22
764
原创 Redis——三大策略
Redis可以对key设置过期时间,因此需要有相应的机制将已过期的键值对删除。,在合理使用CPU时间和避免内存浪费之间取得平衡。(Redis默认20个)的key进行检查,并。最大允许内存,默认为0,也就是没有大小限制。,由事件处理器自动执行key的删除操作。
2025-05-17 17:00:17
1035
原创 Redis——持久化
AOF日志用于记录写操作命令,在redis重启后通过逐步执行写命令实现内存的数据再现。*3表示当前命令有三个部分,$+数字表示这部分命令、键或值包含多少字节。AOF记录的是写操作命令,RDB记录的是二进制数据,也就是记录Redis某一个瞬间的实际内存数据。因此恢复数据时,RDB的效率要比AOF更高,因为不用再逐步执行命令,直接读取RDB文件即可。
2025-05-17 15:09:12
950
原创 Redis——底层数据结构
Redis采用了链式哈希(拉链法)来解决哈希冲突,这与Java中的hashMap是相似的。哈希表的底层其实是数组,通过计算对象的哈希值对数组长度取余来确定索引位置,可以在O1的时间获取数据。
2025-05-16 17:52:55
1774
原创 MySQL——日志
redo log提交成功,binlog提交失败。主库数据更新成功但binlog丢失记录,进而导致主从复制时从库数据是旧的,以及备份的数据不一致。事务提交后,redo log和binlog都需要持久化到磁盘中,但这两个是独立逻辑,可能出现半成功的情况,造成数据不一致,需要确保它们提交的。的日志,在事务没提交之前,会先记录更新前的数据到undo log日志文件中,事务回滚时,可以利用undo log来进行回滚。主库数据更新丢失,但从库和备份有记录,导致主库数据是旧的,数据不一致。,再在合适的时机写入磁盘中。
2025-05-16 11:53:40
935
原创 Redis——数据结构
跳表有多个层级,每次添加新元素时会通过随机算法获取0到1的随机数,如果随机数<0.25(概率小于25),则增加一层,然后继续随机生成随机数,直到随机数大于0.25结束。层高最大限制为64。随着Redis的更新,后来又增加了四种数据类型:BitMap、HyperLoglog、GEO、Stream。示例:[socre1][value1][score2][value2]...
2025-05-13 14:48:48
980
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅