会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
benjerry
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
7
8
···
11
下一页
2023年7月16日
如何保证mq消息的可靠性
摘要: 拿rabbitmq举例吧 它有两种方案,一个是开启事务,但这种会降低性能; 还有种异步confirm机制,在生产者这边,mq消息成功消费后会有一个异步回调,所以通常会用这个模式。 光做这个常规情况下够了,如果考虑宕机,还有其他极端情况,要开启持久化,和使用数据库记录消息流水。 另外mq自动的ack只
阅读全文
posted @ 2023-07-16 02:05 时间羚羊
阅读(89)
评论(0)
推荐(0)
2023年7月15日
synchronized和ReentrantLock的区别
摘要: 用法: synchronized修饰代码块或者方法,不需要手动释放,默认非公平 ReentrantLock需要手动调用,手动释放,能够控制公平机制,能够尝试获取和超时获取锁,能更好的控制锁行为,在需要通过线程提高性能的场景中,能比较好的操控 基本原理: synchronized是靠管程(monito
阅读全文
posted @ 2023-07-15 18:45 时间羚羊
阅读(13)
评论(0)
推荐(0)
如何提高缓存命中率
摘要: 这种问题的话,肯定是要提前设置好缓存的 第二要有相对严格的双写一致策略,只要数据库数据发生变化,就要主动更新缓存,可以用binlog,代码层面可以用读写锁限制写的请求 第三要使用定时任务固定刷新 第四要有判空操作,一般的缓存使用,如果不存在的key,可能会前往db进行查询,可以打破这一规则,至于用什
阅读全文
posted @ 2023-07-15 16:42 时间羚羊
阅读(77)
评论(0)
推荐(0)
线程的状态
摘要: 常见操作系统的线程状态是五种 创建 --> 就绪 --> 运行 -> 阻塞 --> 终止 java中定义了六中,主要是依据锁的行为 create --> runnable --> waiting --> time_waiting --> blocked --> terminate java中的run
阅读全文
posted @ 2023-07-15 08:59 时间羚羊
阅读(16)
评论(0)
推荐(0)
线程的终止
摘要: 为什么不推荐stop 主要它不释放锁资源,尤其暴力终止,可能会导致业务执行到一半,出现各种问题。 为什么使用interrupt方法 通常使用自带的方法,而不是使用自定义的业务标识,是因为interrupt能修改线程状态,java线程的终止,需要从runnable终止。如果仅仅使用自定义的终止标志,有
阅读全文
posted @ 2023-07-15 08:21 时间羚羊
阅读(23)
评论(0)
推荐(0)
2023年7月14日
redis的持久化策略
摘要: 1、默认是RDB方式,就是每隔1秒钟,直接把数据持久化到磁盘,数据量大的时候,可能就会卡顿,但是这种持久化实际上是异步的,但是也不能完全依赖系统性能 2、AOF记录命令的方式,这种在启动的时候可能导致cpu飙升 3、混合方式,在RDB的时候,有新数据进来就采用AOF方式记录 需要去调整nginx配置
阅读全文
posted @ 2023-07-14 11:27 时间羚羊
阅读(34)
评论(0)
推荐(0)
mvcc多版本并发控制
摘要: 问这种东西其实也算纯八股文了 数据库处理并发事务的普遍参考或者协议吧 及其类似 java 的读写锁 假设现在有多个请求并发来到数据库,请求如下:读、读、读、写、读、读、写、写、读、读 1、读-读:这个不存在任何问题 2、读-写:写会阻塞读 3、写-写:写也会阻塞写 4、写-读:读不会阻塞写 查询bi
阅读全文
posted @ 2023-07-14 11:14 时间羚羊
阅读(30)
评论(0)
推荐(0)
项目中,redis被用在了哪些地方
摘要: 1、最常用用来当缓存使用,最常见缓存的是用户数据,毕竟基于spring security开发的话,默认的用户缓存方式就是直接jvm内存和外部缓存两种 2、有些签到、排行榜功能会用, 签到使用位图,因为用户数据量极大的时候用数据库记录存不太合适,签到数据也是几何倍数增长,但是其实数据库也能实现这种位图
阅读全文
posted @ 2023-07-14 10:52 时间羚羊
阅读(213)
评论(0)
推荐(0)
总监面(高级或架构):如何找到缓慢代码并判定代码执行效率,以及优化它的思路
摘要: 1、先使用一些集成测试插件(比如jmeter、metershpere)或者脚本定位到慢速接口,也可以通过日志分析cat | grep 2、使用sonar、findbugs之类的插件定位复杂度较高的代码,(分析一下算法复杂度和空间复杂度)以及sql调用部分的代码 3、先将调用的sql放到mysql上运
阅读全文
posted @ 2023-07-14 10:43 时间羚羊
阅读(54)
评论(0)
推荐(0)
tcp三次握手和四次挥手
摘要: 和udp的区别 定义上来说,tcp是面向连接的、安全的、可靠的协议;udp是面向数据报的、不可靠的协议。 从本质上来说,就是tcp每次建立和断开连接,都要进行握手和挥手,客户端每次传送数据包,都会收到服务端的ack确认,还有报文缺失、超时的重传机制。 udp是没有这些握手和确认机制的,所以udp不保
阅读全文
posted @ 2023-07-14 10:06 时间羚羊
阅读(36)
评论(0)
推荐(0)
上一页
1
2
3
4
5
6
7
8
···
11
下一页
公告