摘要:
前言 单例模式无论在我们面试,还是日常工作中,都会面对的问题。但很多单例模式的细节,值得我们深入探索一下。 这篇文章透过单例模式,串联了多方面基础知识,非常值得一读。 1 什么是单例模式? 单例模式是一种非常常用的软件设计模式,它定义是单例对象的类只能允许一个实例存在。 该类负责创建自己的对象,同时 阅读全文
摘要:
前言 对于从事java开发工作的小伙伴来说,spring框架肯定再熟悉不过了。spring给开发者提供了非常丰富的api,满足我们日常的工作需求。 如果想要创建bean实例,可以使用@Controller、@Service、@Repository、@Component等注解。 如果想要依赖注入某个对 阅读全文
摘要:
前言 最近趁着国庆节放假休息,特地整理了一下,阿里巴巴开源的10款神级项目。 这些开源项目中的绝大多数,我都在实际工作中用过,或者有同事用过。确实挺不错,挺有价值的,现在推荐给大家。 1. Druid Druid自称是Java语言中最好的数据库连接池,它能够提供强大的监控和扩展功能。监控后台如下图所 阅读全文
摘要:
前言 在分布式系统中,由于redis分布式锁相对于更简单和高效,成为了分布式锁的首先,被我们用到了很多实际业务场景当中。 但不是说用了redis分布式锁,就可以高枕无忧了,如果没有用好或者用对,也会引来一些意想不到的问题。 今天我们就一起聊聊redis分布式锁的一些坑,给有需要的朋友一个参考。 1 阅读全文
摘要:
前言 对于从事java开发工作的同学来说,spring的事务肯定再熟悉不过了。 在某些业务场景下,如果一个请求中,需要同时写入多张表的数据。为了保证操作的原子性(要么同时成功,要么同时失败),避免数据不一致的情况,我们一般都会用到spring事务。 确实,spring事务用起来贼爽,就用一个简单的注 阅读全文
摘要:
前言 如果你使用过mysql数据库,对它的存储引擎:innodb,一定不会感到陌生。 众所周知,在mysql5.5以前,默认的存储引擎是:myslam。但mysql5.5之后,默认的存储引擎已经变成了:innodb,它是我们建表的首选存储引擎。 那么,问题来了: innodb的底层是如何存储数据的? 阅读全文
摘要:
前言 我的上家公司是做餐饮系统的,每天中午和晚上用餐高峰期,系统的并发量不容小觑。为了保险起见,公司规定各部门都要在吃饭的时间轮流值班,防止出现线上问题时能够及时处理。 我当时在后厨显示系统团队,该系统属于订单的下游业务。用户点完菜下单后,订单系统会通过发kafka消息给我们系统,系统读取消息后,做 阅读全文
摘要:
前言 高并发下如何设计秒杀系统?这是一个高频面试题。这个问题看似简单,但是里面的水很深,它考查的是高并发场景下,从前端到后端多方面的知识。 秒杀一般出现在商城的促销活动中,指定了一定数量(比如:10个)的商品(比如:手机),以极低的价格(比如:0.1元),让大量用户参与活动,但只有极少数用户能够购买 阅读全文
摘要:
前言 在庞大的java体系中,spring有着举足轻重的地位,它给每位开发者带来了极大的便利和惊喜。我们都知道spring是创建和管理bean的工厂,它提供了多种定义bean的方式,能够满足我们日常工作中的多种业务场景。 那么问题来了,你知道spring中有哪些方式可以定义bean? 我估计很多人会 阅读全文
摘要:
前言 公司为了保证系统的稳定性,加了很多监控,比如:接口响应时间、cpu使用率、内存使用率、错误日志等等。如果系统出现异常情况,会邮件通知相关人员,以便于大家能在第一时间解决隐藏的系统问题。此外,我们这边有个不成文的规定,就是线上问题最好能够当日解决,除非遇到那种非常棘手的问题。 1.起因 有个周一 阅读全文