服务器消息推送-WebSocket
在做 Web 系统时,经常会遇到一些需要服务端主动向客户端发送通知的场景,一般我们可以使用轮询来查询服务端信息,但是这样会对服务器造成较大的压力,对于以上问题,我们可以使用 WebSocket 或者 SSE 来解决
WebSocket:基于 TCP 的一种网络协议,它实现了浏览器与服务器全双工通信,而且数据格式比较轻量,性能开销小,不用频繁创建及销毁 TCP 请求
在做 Web 系统时,经常会遇到一些需要服务端主动向客户端发送通知的场景,一般我们可以使用轮询来查询服务端信息,但是这样会对服务器造成较大的压力,对于以上问题,我们可以使用 WebSocket 或者 SSE 来解决
WebSocket:基于 TCP 的一种网络协议,它实现了浏览器与服务器全双工通信,而且数据格式比较轻量,性能开销小,不用频繁创建及销毁 TCP 请求
在本地开发过程中,对代码进行 Debug 能逐行对代码逻辑进行调试,方便排查问题,但是当代码发布到测试环境时,如果运行过程中出现异常,仅仅依靠日志来排查问题的话,会比较耗时,经常由于日志不全等原因而不能快速准确定位问题,而通过对 JAVA 代码进行远程 Debug 能很好的解决这个问题
Spring 事务可以简化对常规事务的一些操作,比如获取连接、关闭连接、事务提交和回滚等,在使用 Spring 事务时,有一个非常重要的概念就是事务属性,事务属性通常由事务的传播行为、隔离级别、超时时间和只读标志组成
AOP(Aspect Oriented Program,面向切面编程),可以说是面向对象编程的补充,它提供一种“横切”的技术,将影响了多个类的公共行为封装到一个可重用模块,并将其命名为切面(Aspect),AOP 把软件系统分为两个部分:核心关注点和横切关注点,业务处理的主要流程就是核心关注点,而横切关注点就是核心关注点里的一些公共行为,比如权限认证、日志、事物等
ThreadLocal 将一个变量隔离在某一个线程上,即该变量只在某个线程本身可见,其他线程无法访问,可以实现线程的安全性,而且可以避免线程同步带来的性能损失
Linux 常见问题整理
在 SpringBoot 中使用 spring.jackson.date-format 只会对 Date 类型进行格式化,而使用 @JsonFormat 和 @DataTimeFormat 只能针对单个属性进行格式化,比较麻烦,所以需要一个全局的格式化
MySQL 主从复制是指数据可以从一个 MySQL 数据库服务器主节点复制到一个或多个从节点,MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定的数据库,或者特定的表
Linux 环境下安装 MySQL