开心

盛年不重来,一日难再晨。

服务器接受大量请求时,使用线程池技术是非常合适的,它可以大大减少线程的创建和销毁次数,提高服务器的工作效率,实际在开发中,如果需要创建 5 个以上的线程,那么就可以使用线程池来管理

阅读全文 »

SSE(Server Sent Event):服务器发送事件,客户端发起请求后,连接会一直保持,等待服务器发送数据,它与 WebSocket 的明显区别就是 SSE 是半双工的,只能服务端向客户端发送数据,优点是不需要其他的类库,开发难度较低,默认支持断线重连

阅读全文 »

在做 Web 系统时,经常会遇到一些需要服务端主动向客户端发送通知的场景,一般我们可以使用轮询来查询服务端信息,但是这样会对服务器造成较大的压力,对于以上问题,我们可以使用 WebSocket 或者 SSE 来解决

WebSocket:基于 TCP 的一种网络协议,它实现了浏览器与服务器全双工通信,而且数据格式比较轻量,性能开销小,不用频繁创建及销毁 TCP 请求

阅读全文 »

在本地开发过程中,对代码进行 Debug 能逐行对代码逻辑进行调试,方便排查问题,但是当代码发布到测试环境时,如果运行过程中出现异常,仅仅依靠日志来排查问题的话,会比较耗时,经常由于日志不全等原因而不能快速准确定位问题,而通过对 JAVA 代码进行远程 Debug 能很好的解决这个问题

阅读全文 »

Spring 事务可以简化对常规事务的一些操作,比如获取连接、关闭连接、事务提交和回滚等,在使用 Spring 事务时,有一个非常重要的概念就是事务属性,事务属性通常由事务的传播行为、隔离级别、超时时间和只读标志组成

阅读全文 »

AOP(Aspect Oriented Program,面向切面编程),可以说是面向对象编程的补充,它提供一种“横切”的技术,将影响了多个类的公共行为封装到一个可重用模块,并将其命名为切面(Aspect),AOP 把软件系统分为两个部分:核心关注点和横切关注点,业务处理的主要流程就是核心关注点,而横切关注点就是核心关注点里的一些公共行为,比如权限认证、日志、事物等

阅读全文 »