Yang's Blog

Yang's Blog

Spring:基于xml的bean管理
发表于2024-09-06|JavaSpring
3、容器:IoCIoC 是 Inversion of Control 的简写,译为“控制反转”,它不是一门技术,而是一种设计思想,是一个重要的面向对象编程法则,能够指导我们如何设计出松耦合、更优良的程序。 Spring 通过 IoC 容器来管理所有 Java 对象的实例化和初始化,控制对象与对象之间的依赖关系。我们将由 IoC 容器管理的 Java 对象称为 Spring Bean,它与使用关键字 new 创建的 Java 对象没有任何区别。 IoC 容器是 Spring 框架中最重要的核心组件之一,它贯穿了 Spring 从诞生到成长的整个过程。 3.1、IoC容器3.1.1、控制反转(IoC) 控制反转是一种思想。 控制反转是为了降低程序耦合度,提高程序扩展力。 控制反转,反转的是什么? 将对象的创建权利交出去,交给第三方容器负责。 将对象和对象之间关系的维护权交出去,交给第三方容器负责。 控制反转这种思想如何实现呢? DI(Dependency Injection):依赖注入 3.1.2、依赖注入DI(Dependency Injection):依...
Spring入门
发表于2024-09-06|JavaSpring
Spring6 1、概述1.1、Spring是什么?Spring 是一款主流的 Java EE 轻量级开源框架 ,Spring 由“Spring 之父”Rod Johnson 提出并创立,其目的是用于简化 Java 企业级应用的开发难度和开发周期。Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring 框架除了自己提供功能外,还提供整合其他技术和框架的能力。 Spring 自诞生以来备受青睐,一直被广大开发人员作为 Java 企业级应用程序开发的首选。时至今日,Spring 俨然成为了 Java EE 代名词,成为了构建 Java EE 应用的事实标准。 自 2004 年 4 月,Spring 1.0 版本正式发布以来,Spring 已经步入到了第 6 个大版本,也就是 Spring 6。本课程采用Spring当前最新发布的正式版本6.0.2。 1.2、Spring 的狭义和广义在不同的语境中,Spring 所代表的含义是不同的。下面我们就分别从“广义”和“狭义”两个角度,对 Spring 进...
Nginx-动静分离与高可用
发表于2024-08-20|JavaNginx
Nginx实现服务器端集群搭建Nginx与Tomcat部署前面课程已经将Nginx的大部分内容进行了讲解,我们都知道了Nginx在高并发场景和处理静态资源是非常高性能的,但是在实际项目中除了静态资源还有就是后台业务代码模块,一般后台业务都会被部署在Tomcat,weblogic或者是websphere等web服务器上。那么如何使用Nginx接收用户的请求并把请求转发到后台web服务器? 步骤分析: 121.准备Tomcat环境,并在Tomcat上部署一个web项目2.准备Nginx环境,使用Nginx接收请求,并把请求分发到Tomat上 环境准备(Tomcat)浏览器访问: 1http://192.168.200.146:8080/demo/index.html 获取动态资源的链接地址: 1http://192.168.200.146:8080/demo/getAddress 本次课程将采用Tomcat作为后台web服务器 (1)在Centos上准备一个Tomcat (2)准备一个web项目,将其打包为war (3)启动tomcat进行访问测试。 12静态资...
Nginx-负载均衡
发表于2024-08-20|JavaNginx
Nginx负载均衡负载均衡概述早期的网站流量和业务功能都比较简单,单台服务器足以满足基本的需求,但是随着互联网的发展,业务流量越来越大并且业务逻辑也跟着越来越复杂,单台服务器的性能及单点故障问题就凸显出来了,因此需要多台服务器进行性能的水平扩展及避免单点故障出现。那么如何将不同用户的请求流量分发到不同的服务器上呢? 负载均衡的原理系统的扩展可以分为纵向扩展和横向扩展。 纵向扩展是从单机的角度出发,通过增加系统的硬件处理能力来提升服务器的处理能力 横向扩展是通过添加机器来满足大型网站服务的处理能力。 这里面涉及到两个重要的角色分别是”应用集群”和”负载均衡器”。 应用集群:将同一应用部署到多台机器上,组成处理集群,接收负载均衡设备分发的请求,进行处理并返回响应的数据。 负载均衡器:将用户访问的请求根据对应的负载均衡算法,分发到集群中的一台服务器进行处理。 负载均衡的作用1、解决服务器的高并发压力,提高应用程序的处理性能。 2、提供故障转移,实现高可用。 3、通过添加或减少服务器数量,增强网站的可扩展性。 4、在负载均衡器上进行过滤,可以提高系统的安全性。 负载均衡策略介绍完...
Nginx-反向代理
发表于2024-08-20|JavaNginx
Nginx反向代理Nginx反向代理概述关于正向代理和反向代理,我们在前面的章节已经通过一张图给大家详细的介绍过了,简而言之就是正向代理代理的对象是客户端,反向代理代理的是服务端,这是两者之间最大的区别。 Nginx即可以实现正向代理,也可以实现反向代理。 我们先来通过一个小案例演示下Nginx正向代理的简单应用。 先提需求: (1)服务端的设置: 123456789101112http { log_format main 'client send request=>clientIp=$remote_addr serverIp=>$host'; server{ listen 80; server_name localhost; access_log logs/access.log main; location { root html; index index.html index.htm; } }} (2)使用客户端访问服务端,打开日志查看结果 (3)代理服务...
认识Nginx
发表于2024-08-20|JavaNginx
Nginx简介背景介绍Nginx(“engine x”)一个具有高性能的【HTTP】和【反向代理】的【WEB服务器】,同时也是一个【POP3/SMTP/IMAP代理服务器】,是由伊戈尔·赛索耶夫(俄罗斯人)使用C语言编写的,Nginx的第一个版本是2004年10月4号发布的0.1.0版本。另外值得一提的是伊戈尔·赛索耶夫将Nginx的源码进行了开源,这也为Nginx的发展提供了良好的保障。 名词解释 WEB服务器: WEB服务器也叫网页服务器,英文名叫Web Server,主要功能是为用户提供网上信息浏览服务。 HTTP: HTTP是超文本传输协议的缩写,是用于从WEB服务器传输超文本到本地浏览器的传输协议,也是互联网上应用最为广泛的一种网络协议。HTTP是一个客户端和服务器端请求和应答的标准,客户端是终端用户,服务端是网站,通过使用Web浏览器、网络爬虫或者其他工具,客户端发起一个到服务器上指定端口的HTTP请求。 POP3/SMTP/IMAP: POP3(Post Offic Protocol 3)邮局协议的第三个版本,...
Redis高级-最佳实践
发表于2024-08-18|JavaRedis
Redis高级篇之最佳实践今日内容 Redis键值设计 批处理优化 服务端优化 集群最佳实践 1、Redis键值设计1.1、优雅的key结构Redis的Key虽然可以自定义,但最好遵循下面的几个最佳实践约定: 遵循基本格式:[业务名称]:[数据名]:[id] 长度不超过44字节 不包含特殊字符 例如:我们的登录业务,保存用户信息,其key可以设计成如下格式: 这样设计的好处: 可读性强 避免key冲突 方便管理 更节省内存: key是string类型,底层编码包含int、embstr和raw三种。embstr在小于44字节使用,采用连续内存空间,内存占用更小。当字节数大于44字节时,会转为raw模式存储,在raw模式下,内存空间不是连续的,而是采用一个指针指向了另外一段内存空间,在这段空间里存储SDS内容,这样空间不连续,访问的时候性能也就会收到影响,还有可能产生内存碎片 1.2、拒绝BigKeyBigKey通常以Key的大小和Key中成员的数量来综合判定,例如: Key本身的数据量过大:一个String类型的Key,它的值为5 MB Key中的成员数...
Redis高级-多级缓存同步
发表于2024-08-17|JavaRedis
5.缓存同步大多数情况下,浏览器查询到的都是缓存数据,如果缓存数据与数据库数据存在较大差异,可能会产生比较严重的后果。 所以我们必须保证数据库数据、缓存数据的一致性,这就是缓存与数据库的同步。 5.1.数据同步策略缓存数据同步的常见方式有三种: 设置有效期:给缓存设置有效期,到期后自动删除。再次查询时更新 优势:简单、方便 缺点:时效性差,缓存过期之前可能不一致 场景:更新频率较低,时效性要求低的业务 同步双写:在修改数据库的同时,直接修改缓存 优势:时效性强,缓存与数据库强一致 缺点:有代码侵入,耦合度高; 场景:对一致性、时效性要求较高的缓存数据 异步通知:修改数据库时发送事件通知,相关服务监听到通知后修改缓存数据 优势:低耦合,可以同时通知多个缓存服务 缺点:时效性一般,可能存在中间不一致状态 场景:时效性要求一般,有多个服务需要同步 而异步实现又可以基于MQ或者Canal来实现: 1)基于MQ的异步通知: 解读: 商品服务完成对数据的修改后,只需要发送一条消息到MQ中。 缓存服务监听MQ消息,然后完成对缓存的更新 依然有少量的代码侵入。 2)基于C...
Redis高级-多级缓存
发表于2024-08-17|JavaRedis
3.Lua语法入门Nginx编程需要用到Lua语言,因此我们必须先入门Lua的基本语法。 3.1.初识LuaLua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。官网:https://www.lua.org/ Lua经常嵌入到C语言开发的程序中,例如游戏开发、游戏插件等。 Nginx本身也是C语言开发,因此也允许基于Lua做拓展。 3.1.HelloWorldCentOS7默认已经安装了Lua语言环境,所以可以直接运行Lua代码。 1)在Linux虚拟机的任意目录下,新建一个hello.lua文件 2)添加下面的内容 1print("Hello World!") 3)运行 3.2.变量和循环学习任何语言必然离不开变量,而变量的声明必须先知道数据的类型。 3.2.1.Lua的数据类型Lua中支持的常见数据类型包括: 另外,Lua提供了type()函数来判断一个变量的数据类型: 3.2.2.声明变量Lua声明变量的时候无需指定数据类型,而是用local...
Redis高级-JVM进程缓存
发表于2024-08-11|JavaRedis
1.什么是多级缓存传统的缓存策略一般是请求到达Tomcat后,先查询Redis,如果未命中则查询数据库,如图: 存在下面的问题: •请求要经过Tomcat处理,Tomcat的性能成为整个系统的瓶颈 •Redis缓存失效时,会对数据库产生冲击 多级缓存就是充分利用请求处理的每个环节,分别添加缓存,减轻Tomcat压力,提升服务性能: 浏览器访问静态资源时,优先读取浏览器本地缓存 访问非静态资源(ajax查询数据)时,访问服务端 请求到达Nginx后,优先读取Nginx本地缓存 如果Nginx本地缓存未命中,则去直接查询Redis(不经过Tomcat) 如果Redis查询未命中,则查询Tomcat 请求进入Tomcat后,优先查询JVM进程缓存 如果JVM进程缓存未命中,则查询数据库 在多级缓存架构中,Nginx内部需要编写本地缓存查询、Redis查询、Tomcat查询的业务逻辑,因此这样的nginx服务不再是一个反向代理服务器,而是一个编写业务的Web服务器了。 因此这样的业务Nginx服务也需要搭建集群来提高并发,再有专门的nginx服务来做反向代理,如图: 另外,...
1…456…9
avatar
Yang
萌新打怪升级中......
文章
86
标签
197
分类
16
Follow Me
公告
This is my Blog
最新文章
朴素贝叶斯与聚类2026-05-03
集成学习2026-04-28
决策树2026-04-25
逻辑回归2026-04-22
线性回归2026-04-18
分类
  • Git1
  • Java72
    • ES3
    • JavaSE17
    • LangChain4J5
    • Linux1
    • Mybatis3
    • Nginx4
标签
Fanout KMeans RDB nginx Canal 故障转移 Aspect Feed流 Component 同步调用 内存淘汰 高可用 sigmoid函数 装饰者模式 状态模式 会话记忆 模板方法模式 ChatMemory RequestMapping 解释器模式 InputStream master 分页插件 Map DispatcherServlet regex 缓存穿透 ndarray Spring Framework 通知 C4.5 BaseMapper FactoryBean 打印流 访问者模式 Json处理 读写分离 单例模式 声明式事务 xml
归档
  • 五月 2026 1
  • 四月 2026 9
  • 一月 2026 5
  • 十月 2025 2
  • 九月 2025 2
  • 七月 2025 1
  • 六月 2025 1
  • 二月 2025 3
网站信息
文章数目 :
86
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2025 - 2026 By Yang框架 Hexo 7.3.0|主题 Butterfly 5.5.5-b1