摘要: 1、默认是RDB方式,就是每隔1秒钟,直接把数据持久化到磁盘,数据量大的时候,可能就会卡顿,但是这种持久化实际上是异步的,但是也不能完全依赖系统性能 2、AOF记录命令的方式,这种在启动的时候可能导致cpu飙升 3、混合方式,在RDB的时候,有新数据进来就采用AOF方式记录 需要去调整nginx配置 阅读全文
posted @ 2023-07-14 11:27 时间羚羊 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 问这种东西其实也算纯八股文了 数据库处理并发事务的普遍参考或者协议吧 及其类似 java 的读写锁 假设现在有多个请求并发来到数据库,请求如下:读、读、读、写、读、读、写、写、读、读 1、读-读:这个不存在任何问题 2、读-写:写会阻塞读 3、写-写:写也会阻塞写 4、写-读:读不会阻塞写 查询bi 阅读全文
posted @ 2023-07-14 11:14 时间羚羊 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 1、最常用用来当缓存使用,最常见缓存的是用户数据,毕竟基于spring security开发的话,默认的用户缓存方式就是直接jvm内存和外部缓存两种 2、有些签到、排行榜功能会用, 签到使用位图,因为用户数据量极大的时候用数据库记录存不太合适,签到数据也是几何倍数增长,但是其实数据库也能实现这种位图 阅读全文
posted @ 2023-07-14 10:52 时间羚羊 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 1、先使用一些集成测试插件(比如jmeter、metershpere)或者脚本定位到慢速接口,也可以通过日志分析cat | grep 2、使用sonar、findbugs之类的插件定位复杂度较高的代码,(分析一下算法复杂度和空间复杂度)以及sql调用部分的代码 3、先将调用的sql放到mysql上运 阅读全文
posted @ 2023-07-14 10:43 时间羚羊 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 和udp的区别 定义上来说,tcp是面向连接的、安全的、可靠的协议;udp是面向数据报的、不可靠的协议。 从本质上来说,就是tcp每次建立和断开连接,都要进行握手和挥手,客户端每次传送数据包,都会收到服务端的ack确认,还有报文缺失、超时的重传机制。 udp是没有这些握手和确认机制的,所以udp不保 阅读全文
posted @ 2023-07-14 10:06 时间羚羊 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 1、现在多数项目都是前后端分离,nginx代理静态资源的性能比tomcat之类的服务器要好 2、如果存在多实例的服务,nginx可以充当代理,进行负载均衡(轮询、ip_hash、最少连接数之类的) 3、如果静态网页需要调用多个服务,nginx可以设置多个代理服务且不会造成跨域 阅读全文
posted @ 2023-07-14 06:18 时间羚羊 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 说实话,如果问这种问题,有点纯八股文面试的感觉了,因为原理完全不是java语言实现的,知道了也没什么用 首先得知道标量替换和逃逸分析,以及垃圾回收发生阶段 标量替换是需要开启的(jdk1.7之后标量替换和逃逸分析是自动开启),就是把一个对象分割成不可替换的基本类型,基本类型都在栈上创建,替换条件没深 阅读全文
posted @ 2023-07-14 02:40 时间羚羊 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 1、使用Thread或其子类 2、实现Raunnable接口 3、实现Callable接口,它初始化时接收一个Feature对象 启动线程的方式一般两种,直接调用start(不推荐业务中使用,除非能很确定的预判创建数量),或者丢到线程池中 阅读全文
posted @ 2023-07-14 01:35 时间羚羊 阅读(8) 评论(0) 推荐(0) 编辑
摘要: IoC控制反转,指spring有一个容器,帮助我们创建和管理bean的生命周期,不需要显示的进行new和编写控制这个bean状态的代码,效果就是很好地解耦了一些业务逻辑上的关联性。 DI依赖注入,其实和控制反转描述的是同一件事,只是从另一个角度上的描述,spring帮助我们管理bean之后,我们就可 阅读全文
posted @ 2023-07-14 01:26 时间羚羊 阅读(5) 评论(0) 推荐(0) 编辑