logo头像
Snippet 博客主题

ActiveMq的Topic消息模式,订阅者宕机重启,消息丢失的解决方案

消息队列中间件ActiveMq,我熟知的应用场景有,异步处理,削峰平谷和应用解耦,可扩展性,还有一个不经常想到的,解决并发问题。 异步处理比如订单系统,订单创建的流程很长,有订单号的生成,优惠券的使用,配送流程,库存的扣减,通知邮件与...

从分布式事务理论,总结途牛火车票的解决方案

为解决单机系统的性能瓶颈,无论我们根据业务垂直拆分系统,还是水平分库分表,都会面临分布式事务的问题。解决此类分布式事务的场景,业内已经提出了一致性原理,如数据库单机的ACID,到后面提出的CAP和BASE定理,继而提出了一致性协议,如...

可以暂停的线程池

问渠那得清如许,为有源头活水来 这段时间没有更新博客了,不是因为找到工作了而繁忙了,也不是在忙于找工作,而是趁着有空在家带娃了,没有输入哪来的输出。面试的时候最喜欢问线程池了,我遇到的题目有: 线程池的工作原理 Executor...

HashMap的源码解析

背景最近忙着面试,把学习的东西,通过博客沉淀下来,一方面加深自己的理解,另方面方便以后自己再次复习。HashMap 是面试喜欢问的问题,那么HashMap的原理是什么呢? HashMap原理HashMap的数据结构是 数组+链表。 ...

Spring多个AOP多注解执行顺序是怎么样的

今天去了杉德面试,整体感觉还好。就spring AOP,对方问了下AOP事务失效的场景有哪些?幸亏之前做了一篇文章,刚好用到了这块的知识spring声明式事务失效的分析过程。另外还问了多个AOP的执行顺序是怎么样的,比如一个方法,有二...

分库分表技术储备

背景数据库,很容易成为应用系统的瓶颈。单机数据库的资源与处理能力有限,在高并发的分布式服务中,可采取分库分表突破单机局限。其实,在除了少数的公司流量大,大部分用不上分库分表,主从读写分离这样的架构已经可以满足业务的需求了,可是偏偏面试...

高并发下,redis热点KEY的解决方案

背景在高并发系统中,我们将多个KEY数据分片,hash均衡分布在redis集群中,如果遇到活动,或者明星的热点新闻,那这台存有热点的KEY的redis实例,遇到百万的流量,这台机器的网卡也恐怕撑不住了,那么redis基本就瘫痪了,服务...

如何实现缓存击穿,只允许一条线程去DB更新数据

场景使用redis控制缓存的时候,弊端是太依赖于网络与redis服务的稳定性。在高并发的场景下,如果某个KEY过期了,会有很多的GET该KEY的请求,直接会去查询DB,甚至导致DB瘫痪,那么有啥解决方案呢? 解决方案利用互斥锁,只允许...

用协程代替线程,减少上下文切换

背景在开发工作中,遇到一些串行处理比较耗时的任务,我会想到用多线程,切片并行执行,已减少请求响应时间,提高吞吐量。可是,开辟线程也是需要消耗系统内存的,一个线程的线程栈,JVM默认配置1M左右,线程栈的内存的上限 只受操作系统的内存限...