- 博客(19)
- 资源 (1)
- 收藏
- 关注
原创 Nginx 接入 Keepalived 实现高可用,让你的网站稳如泰山!
通过上面的步骤,我们成功搭建了一个 Nginx + Keepalived 的高可用集群。用户访问虚拟 IP 时,流量会在主服务器和备用服务器之间自动切换,保证服务一直可用。在实际部署中,你还可以根据需求扩展,比如增加更多的备用服务器,或者结合负载均衡让多台服务器分担流量。全栈程序员老马。
2025-03-23 10:12:12
795
原创 从单核到百万并发:Nginx负载均衡进阶之路全解析
负载均衡作为现代分布式系统的核心组件,通过智能流量分配实现服务的高可用性和横向扩展。Nginx作为高性能的反向代理服务器,支持7层和4层负载均衡,其事件驱动架构可轻松处理C10K问题。本指南将深入解析Nginx负载均衡的高级配置技巧。
2025-03-23 09:48:28
379
原创 网络安全 - 消息摘要
消息摘要算法是密码学算法中非常重要的一个分支,它通过对所有数据提取指纹信息以实现数据签名、数据完整性校验等功能,由于其不可逆性,有时候会被用做敏感信息的加密。消息摘要算法也被称为哈希(Hash)算法或散列算法。任何消息经过散列函数处理后,都会获得唯一的散列值,这一过程称为 “消息摘要”,其散列值称为 “数字指纹”,其算法自然就是 “消息摘要算法”了。换句话说,如果其数字指纹一致,就说明其消息是一致的。无论输入的消息有多长,计算出来的消息摘要的长度总是固定的。消息摘要看起来是 “随机的”。
2025-01-11 11:27:37
915
原创 网络安全 - 非对称加密
非对称加密需要两个密钥:公钥 (publickey) 和私钥 (privatekey)。公钥和私钥是一对,如果用公钥对数据加密,那么只能用对应的私钥解密。如果用私钥对数据加密,只能用对应的公钥进行解密。因为加密和解密用的是不同的密钥,所以称为非对称加密。非对称加密算法的保密性好,它消除了最终用户交换密钥的需要。但是加解密速度要远远慢于对称加密,在某些极端情况下,甚至能比对称加密慢上1000倍。
2025-01-04 19:56:07
1314
原创 网络安全 - 对称加密
对称密钥算法(Symmetric-key algorithm),又称为私钥加密、共享密钥加密,是密码学中的一类加密算法。对称加密的特点是,在加密和解密时使用相同的密钥,或是使用两个可以简单地相互推算的密钥。常见的对称加密算法有 DES,3DES,AES,RC2,RC4,RC5,SM4等。
2025-01-01 18:08:26
1209
原创 SpringBoot - BuildTools
使用repackage打包后,这里可以看到生成了两个jar相关文件,其中common.jar是spring-boot-maven-plugin插件重新打包后生成的可执行jar,即可以通过java -jar common.jar命令启动。输出时间, 可用于指定重新打包文件的最后修改时间, 意义不大, 但关键时间还是很有作用, ISO 8601 (yyyy-MM-ddTHH:mm:ss.XXXZ) 格式或秒级时间戳, 例如: 2021-07-25T00:00:00.000Z 或 1627287708 .
2024-12-29 09:46:52
959
原创 SpringBoot - 入门
1. 自定义AutoConfiguration@Configuration // 模式注解装配@EnableHelloWorldConfiguration // @Enable模块装配,这个装配是会生成一个helloWorldBean的2. 定义@EnableHelloWorldConfiguration3. 定义HelloWorldConfiguration@Bean。
2024-09-07 21:50:50
1914
1
原创 SpringBoot - 初识
是不是很简单几步,一个可执行的Web应用程序就搞好了,这里省去了很多以前MVC需要的配置以及生成的war包后的部署。它是建立在Spring框架基础之上的一个项目,提供了快速且简单的方式来开发、配置和运行简单或Web应用。简单讲,它是Spring框架和内嵌服务器的组合,并且它使用约定大于配置的软件设计范式,大大简化了开发。3. 增加springboot的打包的maven插件,打包成一个可执行的jar包。1. 新建一个maven工程,增加springboot的父pom。5. 添加controller。
2024-08-25 20:07:01
991
原创 SpringMVC - 源码解析
跟进上面的getHandler方法,我们会进入下面的方法,这里的handler是一个HandlerMethod的实例,最终会封装成HandlerExectionChain, 它里面除了handler还有拦截器HandlerInterceptor。接口HandlerAdapter有个实现类RequestMappingHandlerAdapter,继续往下看,在ha.handle方法里面会执行Controller我们自己写的方法,在这之前和之后,我们看到它执行的拦截器的前置和后置处理器。
2024-08-24 21:56:35
832
原创 SpringMVC - 进阶
这个注解上面有@Component注解,说明被@Controller标注的类会被注册到spring容器中,value属性用来指定这个bean的名称。应用场景:当响应结果比较复杂的时候,springmvc无法处理这些响应结果的时候,我们可以在控制器的方法中使用response来主动控制输出的结果。@ResponseBody可以放到Controller上面,这样所有方法的返回就可以返回Json数据了,Spring还提供了简化的注解@RestController。接收cookie的内容@CookieValue。
2024-08-17 21:53:59
2032
原创 SpringMVC - 初识
Spring MVC是一个创建Web应用程序的框架,它是遵循Model-View-Controller的设计模式。Spring MVC通过DispatcherServlet来接收请求,然后对应对具体的controllers, models和views.
2024-08-11 21:23:24
1239
原创 Java Web应用之Websocket
webSocket是HTML5新增的协议,是一个持久化的协议。它的目的是在浏览器和服务器之间建立一个不受限的双向通信通道。例如:服务器可以在任意时刻向浏览器发送消息。webSocket的出现,让浏览器和服务器之间可以建立无限制的全双工通信,任何一方都可以主动发消息给对方。wesocket并不是全新的协议,而是利用HTTP协议来建立连接的。WebSocket通过HTTP端口80和443进行工作,并支持HTTP代理和中介,从而使其与HTTP协议兼容。
2024-08-10 11:22:52
746
原创 Tomcat详解
因为在 tomcat 中可以配置多个 web 项目,而 tomcat 为这些项目的管理创建了管理页面,也就是默认 webapps 下 host-manager 与 manager 文件夹的项目页面,为了保证安全性,访问这两个项目需要设置权限,但是如果对每个新用户都单独的设置权限比较繁琐麻烦,所以在 tomcat 中定义了几种不同的权限,我们可以自己配置 "角色"(可以看作是特定权限的集合) 和 "用户"(设置登录名、密码,与角色相关联),然后就可以通过自定义的 "用户" 去访问管理页面。
2024-08-10 09:07:43
3093
原创 异步Servlet
如果servlet或过滤器在处理请求时遇到潜在的阻塞操作,它可以将该操作分配给异步执行上下文,并立即将与该请求关联的线程返回给容器,而不生成响应。IO阻塞是说,在Servlet处理请求时,从ServletInputStream中读取请求体时是阻塞的。而我们想要的是,当数据就绪时通知我们去读取就可以了,因为这可以避免占用Servlet容器线程或者业务线程来进行阻塞读。可伸缩性限制包括内存耗尽或耗尽容器线程池。要创建可伸缩的web应用程序,您必须确保与请求相关的线程没有闲置,以便容器可以使用它们来处理新请求。
2024-08-04 08:00:00
711
原创 JSP教程
JSP的全称为Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以结束。JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。
2024-08-03 18:42:07
983
原创 Java如何通过日志排查问题
大家有没有遇到过这样一种场景,在一个接口或者方法当中,业务逻辑很复杂,方法嵌套调用层级很深,此时要定位业务流程的走向,是不是要在每个方法中打日志,而这些日志是不串联的,比如,一个接口调用下来,程序没有报错,但没有按预期执行,怎么排查,就得翻这个方法调用时的每一条记录日志,而代码是并行执行的,程序中不可能只有这一个方法调用,那就会有其它日志夹杂在我们希望查看的日志中间。这也许是一个方法,但在一个大方法里面,要在每一处记日志的地方都增加标记,一来繁琐,二来要在日志中定位也很麻烦。下面我们看看是如何实现的。
2024-07-28 19:33:45
775
原创 Servlet进阶
通过监听器,开发者可以在无需修改已有代码的情况下,对Servlet容器的生命周期事件、Http会话的创建和销毁、Http session属性的增加和删除、Http请求的初始化和结束等进行监控和操作。为了跟踪用户状态,服务器可以向浏览器分配一个唯一ID,并以Cookie的形式发送到浏览器,浏览器在后续访问时总是附带此Cookie,这样,服务器就可以识别用户身份。Filter的事例, 指定一个路径的访问权限,在session中有user并且值为admin的时候,才会放行访问,否则打印error。
2024-07-28 18:13:37
902
原创 初识Servlet
Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。它是一种创建Web应用的技术它是一种API,提供了接口和实现类的,方便Web应用开发它是一种可以扩展服务,根据请求来定制响应内容它是一个Web容器,可以部署到Web服务上面,动态地创建web网页。
2024-07-27 21:14:12
1173
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人