警报:线上事故之CountDownLatch的威力

2019.2.22号凌晨3点半,是一个让人难以忘怀的、和瑞哥最后一次一起奋战的夜晚。

背景

我们有这样一个业务场景:用户提供各种数据源配置信息,然后基于数据源配置的模板,再者在模板基础上构建报表,而大数据计算平台则会根据这些信息生成数据计算任务,以实时、离线、混合的方式跑数,并将计算结果落到存储设备中。

设计一个分布式RPC框架

0 前言

提前先祝大家春节快乐!好了,先简单聊聊。

我从事的是大数据开发相关的工作,主要负责的是大数据计算这块的内容。最近Hive集群跑任务总是会出现Thrift连接HS2相关问题,研究了解了下内部原理,突然来了兴趣,就想着自己也实现一个RPC框架,这样可以让自己在设计与实现RPC框架过程中,也能从中了解和解决一些问题,进而让自己能够更好的发展(哈哈,会不会说我有些剑走偏锋?不去解决问题,居然研究RPC。别急,这类问题已经解决了,后续我也会发文章详述的)。

1 RPC流水线工程?

RPC框架原理图

如何保存/恢复Java应用程序核心内存数据现场?

0. 背景

不论是单体应用还是分布式应用,总是会有些许迭代或者紧急Fix bug上线的神操作。但是如果不是那么幸运,当时还存在大量核心内存中数据在进行计算等逻辑,此时终止项目,就会出现核心数据或者状态丢失的不利情况,后续即使上线完成也要尽快追加数据。

1
2
3
那是否存在某种技巧???:在需要终止应用的时候,能够监听到终止操作,并保存核心数据现场,然后再终止应用,而后在应用恢复后,再进行核心数据恢复。

答案是肯定的。

0.1 技术储备

1
Runtime.getRuntime().addShutdownHook(Thread thread);

2018年度复盘,2019年度规划

2018年度复盘,比起前两度总结晚了将近一个月。2018年,经历了很多事情,也中途换了一份新工作,但追求技术的心仍然没有改变。

2018,可能是极其焦虑不安的一年

  • 亲儿子 ‘sales-order-portal’ 诞生了

    从代码构思、设计到Coding,以及中途进行的一次小重构,直至最后的上线,都只是一个人在战斗,虽然过程心酸,但是结果是美好的。

    也很欣慰那段忙碌的日子里,有前端搭档Charles和QC小姐姐Gina的陪伴。

记一次时隔两年后的JavaWeb项目重构总结

两年前的2016年,我还没有大学毕业,也才大三下学期,也还有自己的team,一起学习,一起成长,一起技术研究与试炼。不缅怀……当时和自己的team一起开发了“科技计划项目电子辅助验收及评估平台”,然而因为team刚成立几个月,其次,项目也比较赶,在时间紧迫的情况下,只能个人保证自己模块不出问题,然后最后再由作为项目负责人的我来审核并集体进行测试。

那么究竟里面的设计有多烂呢?答案就是,有好有坏。在此就不太过多讨论这些了,有兴趣你可以直接去我的码云Git看一下这个项目的当时的版本。

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器