03 2020 档案
摘要:在 JUC 包下,有一个 Semaphore 类,翻译成信号量,Semaphore(信号量)是用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源。Semaphore 跟锁(synchronized、Lock)有点相似,不同的地方是,锁同一时刻只允许一个线程访问某一资源,
阅读全文
摘要:统计一张表的总数量,是我们开发中常有的业务需求,通常情况下,我们都是使用 SQL 语句来完成。随着业务数据的增加,你会发现这条语句执行的速度越来越慢,为什么它会变慢呢? 为什么会变慢?想要得到答案就需要知道 MySQL 是如何统计总数量的,先说一个前提吧, 的具体实现是由存储引擎实现的,也就是说不同
阅读全文
摘要:不知道你是否会经常产生: 感觉在公司技术上得不到提升,想跳槽的想法 ,但是你会发现一个有趣的规律,换了一家新公司,三五个月之后,你又会有同样的想法,它会进入到一个死循环中。 任何一件事情,做过两三遍之后,都可以用粘贴复制来解决。对于一家公司来说,公司的业务是比较固定,它并不是为你量身定做的。当你的成
阅读全文
摘要:消息中间件使用广泛,常用来削峰填谷、系统解耦、异步处理。异步处理可能是使用的最多的场景了,比如现在的技术博客网站,都采用积分制,用户发表一篇文章后,可以获取想要的积分,为了提升系统的性能,给用户加积分的操作可以异步处理,并不需要放在同步流程中。 我们可以把用户ID,需要增加的积分封装成一条消息投递到
阅读全文
摘要:在现在互联网架构中,几乎每个互联网项目都会引入缓存系统,比如 Redis、Memcached。来保护下游数据库和提升系统并发量。不管使用哪种缓存系统都有可能遇到 缓存穿透 的问题。 缓存穿透是指在缓存系统中没有查询到数据,而不得不将请求打到数据库上查询的情况。 当然缓存系统是不可避免的,少量的缓存穿
阅读全文