New Boy

a new blog for a new boy

首届云原生编程挑战赛初赛记录

前言 话说,今年5月份安利hzk来参加leetcode的周赛的时候,被反安利了一波阿里云的中间件挑战赛,不过今年换了个名字,叫云原生编程挑战赛。不过hzk忙着结婚,把我拉进坑自己却跑了。对于这种偏工程化的比赛,之前从未参加过,便打算试试。由于工作比较忙的缘故,大概是花了两个月的时间,在每天下班后抽时间写bug,改bug。期间走了不少弯路,一直到比赛结束,还有些优化没来得及写,但总的来说,对...

st算法

前言 大概是去年十月份开始,开始刷起了leetcode。当时,主要是两个目的,一是加强自己的思维能力,个人觉得算法还是很有意思的,二是开始在日常工作中使用python写些脚步来处理些重复的劳动,借此去学习学习python(不过后面打着打着就开始用java了,蛋疼)。 以前打比赛常用到RMQ算法,不过当时都没有深入了解过原理,前段时间仔细看了看原理和以前的模版,特地整理了一下,在O(1)的...

spring源码阅读(4)IOC与循环依赖

前言 关于spring解决循环依赖的问题,在之前第二篇讲Bean的实例化与初始化的时候,有3个地方提到过循环依赖的问题,可以来看看这3个地方是怎么实现的 获取提前暴露的Bean 在AbstractBeanFactory#doGetBean方法中的第一步,就是尝试从缓存中拿到bean, // Eagerly check singleton cache for manually re...

spring源码阅读(2)IOC与Bean的实例化与初始化

前言 之前写到spring中的bean主要分为两部分: bean的解析与注册 bean的实例化和初始化 打算先写写bean的实例化和初始化,也就是springmvc也好,springboot也好,所有的bean已经转换成了BeanDefinition放入了内存中。 顺带在后面也会总结总结bean的生命周期 过程 上篇文章中看了下BeanFactory相关的接口,所以目前对整体的...

spring源码阅读(1)IOC与BeanFactory

前言 (以下分析均基于spring-5.1.8) 因为spring这个框架在日常工作中的应用实在是太广泛了,便决定下一个阶段学学spring。因为spring非常庞大,一时不知道怎么下手,向hzk咨询了下,决定先看spring的官方文档,再结合相关书籍资料去读源码。spring虽然已经从springmvc到springboot,但核心还是spring-core,spring-contex...

读《经济学通识》记录

大概是今年的5月份左右,拿着屯了有一段时间的amazon充值卡去买了好些书。今年有个目标是入门经济学,当时选了薛兆丰教授的《经济学通识》。一点一点,就在几天前,啃完了这本书。期间,看到了许多醍醐灌顶的句子。恰逢今晚公司在搞灾备上线,抽个时间把印象深的整理出来,当然我引出这写内容不代表这是正确的观点,只能说这些句子曾带给我很深的思考: 1.改造世界,非经济学所长,改造世界观,却是经济学的强项...

使用docker快速构建博客环境

前几天在整理电脑,为了玩玩其他有意思的东西。把window和ubuntu的双系统给干掉了,弄个了kali liunx。最近想写博客来着,需要重新弄jekyll的环境,其实之前弄这环境就感觉特别麻烦,而且各种坑。最近docker比较火,所以这次就打算试试docker来快速搭建该环境 安装docker 安装docker还是比较简单的,windows和macos下都有客户端下载。这里就简单带一...

仲夏夜

一代人终将老去,但总有人正年轻 8月4日,也是一年中非常平常的一天。不过值得开心的是,这是个周日。一大早7点多就醒了,但醒来后,身体似乎还沉浸在昨夜《乐队的夏天》的总决赛中。再次醒来已是11点了,吃个饭,练个琴,弄弄博客,看个电影,又是很充实的一天。刚刚过去的一星期特别累,在搭建一个新系统,包括前后端,而且时间也特别紧。自己也没有提出时间太紧,所以弄得特别累,之后还是一定要预留一定...

消息队列在data中的应用

在不久前,在data和exchange项目中,我们将所有用到rocketmq的地方全部切换到了kafka上。在结汇项目中,消息队列也已经用了近一年多,期间也踩过几个坑,此wiki用以记录消息队列在data和exchange中的实践 不经意的TIMEOUT_CLEAN_QUEUE 记得在去年11月初的时候,确切来说是在ebay API的限流正式放开之后。某日早上,日常检查线上error日志...

rocketmq源码阅读(8)——store文件数据结构

##前言 上文简单分析了一下rocketmq中的存储部分,本文中,我们来看看主要的存储文件中的数据结构。包括CommitLog,ConsumerQueue以及IndexFile,可以试着去读取这些文件 文件结构 CommitLog private static void readCommitlog(int/*读取的消息数量*/ t) throws Exception{ Strin...