摘要:
引子 为了让程序更加高效,让CPU最大效率的工作,我们会采用异步编程。首先想到的是开启一个新的线程去做某项工作。再进一步,为了让新线程可以返回一个值,告诉主线程事情做完了,于是乎Future粉墨登场。然而Future提供的方式是主线程主动问询新线程,要是有个回调函数就爽了。所以,为了满足Future 阅读全文
摘要:
Heroku 是业内知名的云应用平台,从对外提供服务以来,他们已经有上百万应用的托管和运营经验。其创始人 Adam Wiggins 根据这些经验,发布了一个“十二要素应用宣言(The Twelve-Factor App)”,这个设计原则对SaaS平台非常具有指导意义。 十二要素应用宣言 如今,软件通 阅读全文
摘要:
Tips:关注微信公众号:松花皮蛋的黑板报,获取更多精彩! 首先我们先看一下获取四种线程池的代码: ExecutorService fixedThreadPool = Executors.newFixedThreadPool(10); ExecutorService cachedThreadPool 阅读全文
摘要:
这个时候如果不做任何保护措施,服务器就会承受很大的处理压力,请求量很高,服务器负载也很高,并且当请求超过服务器承载极限的时候,系统就会崩溃,导致所有人都不能访问。 为了应用服务的高可用,一个常用的办法是对大流量的请求(秒杀/抢购)进行限流,拦截掉大部分请求,只允许一部分请求真正进入后端服务器,这样就 阅读全文
摘要:
公众号:松花皮蛋的黑板报,作者致力于分享在京东工作的技术感悟,还有JAVA技术和业内最佳实践,大部分都是务实的、能看懂的、可复现的 Mybatis 的缓存均缓存查询操作结果。按照作用域范围,可以分为: - **一级缓存**: `SqlSession` 级别的缓存 - **二级缓存**: `names 阅读全文
摘要:
Tips:关注公众号:松花皮蛋的黑板报,领取程序员月薪25K+秘籍,进军BAT必备! 在程序中打错误日志的主要目标是为更好地排查问题和解决问题提供重要线索和指导。但是在实际中打的错误日志内容和格式变化多样,错误提示上可能残缺不全、没有相关背景、不明其义,使得排查解决问题成为非常不方便或者耗时的操作。 阅读全文
摘要:
Tips:关注公众号:松花皮蛋的黑板报,领取程序员月薪25K+秘籍,进军BAT必备! 数据闭环,并不是说我们要将所有的功能全包揽在身上,不依赖其他业务方,也不依赖中台。而是想强调一件事,那就是业务问题排查过程尽量不要牵扯过多团队,因为数据链路越长越乱处理问题时效性越差,服务性能往往也不尽人意。我先分 阅读全文
摘要:
面试精选集,快快前往领取吧!offer.liangsonghua.me/。关注微信公众号:松花皮蛋的黑板报,获取更多精彩! 一、迭代entrySet() 获取Map 的key 和value 当循环中只需要获取Map 的主键key时,迭代keySet() 是正确的;但是,当需要主键key 和取值val 阅读全文
摘要:
文章首发于公众号松花皮蛋的黑板报 作者就职于京东,在稳定性保障、敏捷开发、高级JAVA、微服务架构有深入的理解 不知道读者有没有下面的这些体验。 案例一: 产品需求预评审、正式评审时,一些看似简单的需求,我们习惯简单思考后就答复,实现是没问题的,保证能按时按质完成任务,然而在开发过程或者测试过程还会 阅读全文