- 博客(35)
- 收藏
- 关注
原创 IOC的启动流程(三)-Bean的生命周期&Bean的后置处理器&Bean的实例化
上一章节我们见到了Spring IOC容器的解析配置与注册BeanDefinition两个大的流程,接来下分析Bean的实例化以及Bean的属性注入流程。这里我在进行对IOC的启动流程再做次简要的概述。创建容器:加载配置文件,创建文件转换器,保存配置文件的地址,然后进行刷新容器。加载配置:将配置文件的经过各种解析器进行加载,从Resource对象->Document对象解析配置:解析Document。
2025-04-03 08:00:00
1711
原创 十五、Redis发布订阅模型
Redis发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。Redis客户端可以订阅任意数量的频道。
2025-04-03 06:00:00
344
原创 十四、Redis6.0新功能
Redis ACL是Access Control List(访问控制列表)的缩写,该功能允许根据可以执行的命令和可以访问的键来限制某些连接。在Redis5版本之前,Redis安全规则只有密码控制还有通过rename来调整高危命令比如flushdb,KEYS*,skutdown等。Redis6则提供ACL的功能对用户进行更细粒度的权限控制:可以接入权限:用户名和密码可以执行命令可以操作KEY查看官网:Redis6终于支檬多线程了,告别单线程了吗?
2025-03-31 02:45:00
612
原创 十三、集群企业解决方案
缓存预热就是系统启动前,提前将相关的缓存数据直接加载到缓存系统。避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题!用户直接查询事先被预热的缓存数据!这样减少了磁盘IO。缓存雪崩就是瞬间过期数据量太大,导致对数据库服务器造成压力。如能够有效避免过期时间集中,可以有效解决雪崩现象的出现(约40%),配合其他策略一起使用,并监控服务器的运行数据,根据运行记录做快速调整。
2025-03-30 06:00:00
644
原创 IOC的启动流程(二)-解析配置与注册BeanDefinition
这篇文章是接上一篇文章《IOC的启动流程(一)-创建容器与加载配置》,上一章节我们见到了Spring IOC容器的容器创建和配置加载两个大的流程,接来下分析Bean的解析以及Bean的注册流程。这里我在进行对IOC的启动流程做次简要的概述。创建容器:加载配置文件,创建文件转换器,保存配置文件的地址,然后进行刷新容器。加载配置:将配置文件的经过各种解析器进行加载,从Resource对象->Document对象解析配置:解析Document对象中的imposrt、alias、bean,如果是bean。
2025-03-30 04:38:06
879
原创 十二、Cluster集群
redis提供的服务OPS可以达到10万/秒,当前业务OPS已经达到20万/秒内存单机容量达到256G,当前业务需求内存容量1T。
2025-03-29 23:57:00
907
原创 IOC的启动流程(一)-创建容器与加载配置
创建容器:加载配置文件,创建文件转换器,保存配置文件的地址,然后进行刷新容器。加载配置:将配置文件的经过各种解析器进行加载,从Resource对象->Document对象解析配置:解析Document对象中的imposrt、alias、bean,如果是bean类型会封装成对象。注册bean:就将对象注册到中。使用 Spring 时,XML和注解是使用得最多的两种配置方式,虽然是两种完全不同的配置方式,但对于 IOC 容器来说,两种方式的不同主要是在的解析上。而对于核心的容器启动流程,仍然是一致的。
2025-03-28 10:15:00
882
原创 IOC启动流程-核心概念&实现思路&核心类篇
官网:https://spring.io/背景Spring 是最受欢迎的企业级java应用程序开发框架,数以百万的来自世界各地的开发人员使用Spring框架,来创建性能好,易于测试,可重用的代码.Spring框架是一个开源的java品台,它最初是由Rod Johnson 编写的,并且2003年6月首次在Apache2.0许可下发布。
2025-03-26 06:00:00
685
原创 十一、Redis哨兵模式
哨兵是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的master并将所有的slave连接到新的master。当宕机的master下线找一个slave作为master通知所有的slave连接的master启动新的master与slave全量复制N+部分复制N。
2025-03-26 06:00:00
796
原创 十、Redis主从复制
高并发能够同时承受大量的数据访问高性能性能比较高,速度比较快高可用系统全年可用时长的占比业界可用性目标5个9,即99.999%,即服务器年宕机时长低于315秒,约5.25分钟。
2025-03-24 06:00:00
874
原创 SpringMVC初始化原理剖析和源码跟踪
DispatcherServlet 的初始化过程是一个复杂的链式调用,核心在于通过Web IoC容器加载和初始化各种组件,为后续的请求分发做好准备。初始化:从的init()方法开始,解析 Servlet 配置并注入属性,然后调用的方法,里面调用初始化和没有具体的实现。初始化:创建或获取 Spring 的上下文环境,再调用的方法。策略组件初始化:在方法中初始化等核心组件,各个组件如果没有显式配置组件,就会执行默认策略。默认策略:Spring MVC 会使用中定义的默认策略。结束。
2025-03-22 02:32:32
882
原创 SpringMVC的执行流程剖析和源码跟踪
doDispatch 是 Spring MVC 框架中的核心方法,用于处理 HTTP 请求并将其分发到相应的处理器(Handler)。它是 DispatcherServlet 的关键部分,负责协调请求的整个生命周期,包括请求解析、处理器选择、视图渲染和异常处理。如果请求是多部分请求,则调用 cleanupMultipart 方法清理相关资源。如果请求是异步的,则直接返回,后续由异步机制继续处理。
2025-03-22 02:32:09
1453
原创 七、Redis删除策略和淘汰策略
用处理器性能换取存储空间(拿时间换空间)用存储空间换取处理器性能(拿时间换空间)周期性抽查存储空间(随机抽查,重点抽查)
2025-03-21 08:00:00
1016
原创 SpringBoot-自动配置原理剖析和源码跟踪
springboot的自动装配实际上就是为了从spring.factories文件中获取到对应的需要进行自动装配的类,并生成相应的Bean对象,然后将它们交给spring容器来帮我们进行管理SpringBoot先加载所有的自动配置类 xxxxxAutoConfiguration每个自动配置类按照条件进行生效,默认都会绑定配置文件指定的值。xxxxProperties里面拿。xxxProperties和配置文件进行了绑定生效的配置类就会给容器中装配很多组件。
2025-03-21 06:30:00
2014
原创 六、事物&分布式锁
Redis执行指令过程中,多条连续执行的指令被干扰,打断,插队Redis是事物就是一个命令执行的队列,将一系列预定义命令包装成一个整体(一个队列),当执行时,一次性按照添加顺序一次执行,中间不会被打断或者被干扰。一个队列中,一次性,顺序性,排它性的执行一系列命令。Redisson是一个实现的Java操作Redis的工具包,它不仅提供了一系列常用的操作Redis的API,还提供了许多分布式服务。
2025-03-20 06:30:00
1173
原创 Hadoop三种模式运行环境搭建
core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml四个配置文件存放在$HADOOP_HOME/etc/hadoop这个路径上,用户可以根据项目需求重新进行修改配置。-rw-r–r–. 1 hadoop hadoop 15429 6月 29 2015 LICENSE.txt。-rw-r–r–. 1 hadoop hadoop 101 6月 29 2015 NOTICE.txt。
2025-03-20 06:00:00
867
原创 JavaWeb之WebSocket
客户端向 WebSocket 服务器通知(notify)一个带有所有接收者ID(recipients IDs)的事件(event),服务器接收后立即通知所有活跃的(active)客户端,只有ID在接收者ID序列中的客户端才会处理这个事件。可以通过读取readyState的属性值来获取WebSocket对象的状态,readyState属性存在以下几种属性值。WebSocket需要接收一个url参数,然后调用WebSocket对象的构造器来建立与服务器之间的通信链接。WebSocket的状态。
2025-03-19 06:30:00
1094
原创 四、Redis客户端
jedis:以Redist命令作为方法名称,学习成本低,简单实用。但是Jedis实例是线程不安全的,多线程环境下需要基于连接池来使用。lettuceLettuce是基于Netty实现的,支持同步、异步和响应式编程方式,并且是线程安全的。支持Redis的哨兵模式、集群模式和管道模式。RedisssionRedisson是一个基于Redis实现的分布式、可伸缩的Java数据结构集合。包含了诸如Map、Queue、LockSemaphore、AtomicLong等强大功能。
2025-03-19 06:00:00
949
原创 五、Redis数据持久化
利用永久性存储介质将数据进行保存,在特定的时间将保存的数据进行恢复的工作机制。持久化过程保存的是什么?将当前数据状态进行保存,快照形式,存储镂数据结果,存储格式简单,关注点在数据(数据快照|RDB)将数据的操作过程进行保存,日志形式,存储操作过程,存储格式复杂,关注点在数据的操作过程(过程日志|REF)
2025-03-18 06:00:00
1273
原创 SpringBoot启动过程原理和源码跟踪-超详细版
ConfigurableApplicationContext接口继承自ApplicationContext接口,并在此基础上多继承了Lifecycle, Closeable接口,基本上所有的ApplicationContext的子类都要实现此接口,它在ApplicationContext的基础上增加了一系列配置应用上下文的功能。如上的代码我写了主要的步骤,接下来我对如上代码做下详细的解释。接着继续往下点,你就会看见这么一坨代码,这就是主要代码。可以自己点进代码,对照释义,这样理解逻辑会清晰很多。
2025-03-18 06:00:00
1280
原创 HTTP协议之请求与响应
响应行:响应数据的第一行,其中HTTP/1.1表示协议版本,200 表示响应状态码,ok表示状态码描述响应头:第二行开始,格式为key:value形式响应体:最后一部分,存放响应数据。
2025-03-17 08:30:00
1769
原创 会话跟踪Session与Cookie
会话,用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束,在一次会话中可以包含多个请求和响应
2025-03-17 08:00:00
793
原创 三、通用命令&lua脚本
很多情况下,迭代器需要保存多个状态信息而不是简单的状态常量和控制变量,最简单的方法是使用闭包,还有一种方法就是将所有的状态信息封装到 table 内,将 table 作为迭代器的状态常量,因为这种情况下可以将所有的信息存放在 table 内,所以迭代函数通常不需要第二个参数。Lua 提供了许多的内建函数,你可以很方便的在程序中调用它们,如print()函数可以将传入的参数打印在控制台上。这种无状态迭代器的典型的简单的例子是 ipairs,它遍历数组的每一个元素,元素的索引需要是数值。
2025-03-16 08:30:00
1116
原创 水晶头接线
平行(直通)线的做法是:两头同为568A标准或568B标准,(一般用到的都是568B平行(直通)线的做法)都接一样是可以的,因为一般网线用的只有1.2.3.6 其他就算没接通一样都是可以用的。交叉线的做法是:一头采用568A标准,一头采用568B标准。网线有两种做法,一种是交叉线,一种是平行(直通)线。
2025-03-16 08:00:00
336
原创 SataToken认证授权-快速入门
之所以叫无状态,是因为这种方式是把用户会话封装到Token中(用户,权限等),服务端不用存储用户会话,拿到Token就可以进行鉴权,无效再去获取用户会话,这种方式更加方便,另外少了获取会话的性能开销。使用JWT的好处是:token是无状态的,也就是服务端不用存储用户信息,而且把用户信息封装到Token中,交由前端自己去存储,这种方式的好处是减轻了服务器的压力,坏处是Token会变得很长。通常有2中方式,一是通过后台管理器去手动添加,第二种是自动扫描方法上的注解权限,自动插入到数据库。
2025-03-15 08:00:00
900
原创 二、Redis数据类型原理解析
原始业务功能设计秒杀京东618活动双11活动派对购票运行平台监控到突发高频访问数据突发时政要闻,别强势关注围观高频复杂统计数据在线人数附加功能-系统功能优化或升级单服务器升级集群Session 管理Token 管理Redis 自身就是一个Map,其中所有的数据都是采用key:value的形式存储数据类型指存储的数据的类型,也就是value部分的类型,key部分永远都是字符串。
2025-03-15 08:00:00
705
原创 一、Redis简介篇
MERZ在Antirez的朋友圈语言中是“愚蠢和傻逼”的代名词,它源于以来广告女郎 Alessia Merz在电视节目说了一堆愚蠢的话,redis之父对她有特殊印象,就给她弄成端口号。如果要让Redis以后台方式启动,则必须修改Redis配置文件,就在解压的redis安装包下,名字就叫 redis.conf。记时信息查询,及时信息查询,如各位排行榜,各类网站访问统计,公交到站信息,在线人数信息(聊天室,网站),设备信号。一个redis服务默认带着16个数据库,默认使用的是索引为0的数据库。
2025-03-14 16:06:45
681
原创 Shiro认证授权-超详细,看这篇就够了
Shiro是apache旗下的一个开源安全框架,它可以帮助我们完成身份认证,授权、加密、会话管理等功能。易于理解的API简单的身份认证,支持多种数据源简单的授权和鉴权简单的加密API支持缓存,以提升应用程序的性能内置会话管理,适用于Web以及非Web的环境不跟任何的框架或者容器捆绑,可以独立运行使用dbcRealm认证时,数据库表名、字段名、认证逻辑都不能改变,我们可以自定义 Realm进行更灵活的认证。编写自定义Realm@Autowired//自定义认证方法。
2025-03-14 08:30:00
684
原创 支付宝沙箱支付-详细版有案例
沙箱环境 (Beta) 是支付宝开放平台为开发者提供的与线上环境完全隔离的联调测试环境,在沙箱环境中完成的调用不会对线上数据造成任何影响,尤其适合涉及资金链路的能力的调试。由于沙箱为模拟环境,在沙箱完成接口开发及主要功能调试后,请务必在正式环境进行完整的功能验收测试。所有返回码及业务逻辑以正式环境为准。为保证沙箱稳定,沙箱环境测试数据会进行定期数据清理。Beta 测试阶段每周日中午 12 点至每周一中午 12 点为维护时间,在此时间内沙箱环境部分功能可能不可用,敬请谅解。
2025-03-13 22:47:15
1455
原创 JSP快速入门
%@ page isELIgnored="true|false"%> 如果设定为真,那么JSP中的表达式被当成字符串处理。JSP标准标签库(JSP Standarded Tag Library),使用标签取代JSP页面上的Java代码。一种动态的网页技术,其中既可以定义HTML,JS,CSS等静态内容,还可以定义Java代码的动态内容。JSP的作用:简化开发,避免了在Servlet中直接输出HTML标签。概念:JAVA Server Page :java 服务器动态页面。○ 主要功能:获取数据。
2025-03-13 22:23:02
818
原创 Cannl 数据同步-ES篇
canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.com/alibaba/canal。
2025-03-13 21:02:56
1088
原创 MongDB入门到精通附带案例,这一篇就够了
NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,它泛指非关系型数据库。随着互联网2003年之后web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的交友类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库NoSQL则由于其本身的特点得到了非常迅速的发展。非关系型数据库弥补了传统关系型数据库在高并发下的不足。非关系型数据库不一定遵循传统数据库的一些基本要求,比如说,不遵循sql标准,事务,表结构等等。
2025-03-13 20:48:54
1002
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人