Java日知录

一个坚持原创,有态度的博客!

0%

案例背景

在开始文章之前我们先来回顾一下,你在面试时,有没有被问到以下几个问题:

  • 如何设计一个支持海量商品存储的高扩展性架构?

  • 在做分库分表时,基于 Hash 取模和一致性 Hash 的数据分片是如何实现的?

  • 在电商大促时期,如何对热点商品数据做存储策略 ?

  • 强一致性和最终一致性的数据共识算法是如何实现的 ?

在分布式系统中,核心的考察点包括了分布式系统中数据的存储、分布、复制,以及相关协议和算法,上述问题都与此相关。而在实际面试中,面试官通常会提出一个业务场景,如“如何设计海量商品数据的存储?”然后在候选者回答问题的过程中,通过一环扣一环的提问,把各考察点串联在一起。

阅读全文 »

大家好,我是飘渺!

在平时开发工作中,如果你要学习或使用某个中间件,如Redis,MongoDB,ES等,你肯定得先去官网下载、安装、然后配置。有时候遇到一个问题,捣鼓半天还是无法启动,等你哼哧哼哧调整好,一上午就过去了。

现在已经2022年了,这种事你用docker来干不香吗?先docker pull 一下,然后再docker run 一下,两句命令,5分钟搞定,剩下的3个小时拿来看看 JAVA日知录 的文章也挺好呀。

阅读全文 »

大家好,我是飘渺。

今天继续给大家带来SpringBoot老鸟系列 的第七篇,来聊聊在SpringBoot项目中如何实现业务异常校验Assert。

希望通过今天的文章,咱们能够了解到:

  1. 如何使用Assert参数校验?
  2. 为什么用了Validator参数校验,还必须再用Assert参数校验?

首先我们来看看为什么需要Assert?

阅读全文 »

大家好,我是飘渺。

SpringBoot老鸟系列的文章已经写了两篇,每篇的阅读反响都还不错,果然大家还是对SpringBoot比较感兴趣。那今天我们就带来老鸟系列的第三篇:集成Swagger接口文档以及Swagger的高级功能。 文章涉及到的代码已经上传到了github,希望最终能应用在你们实际项目上,当然如果有其他需要我添加到内容也可以直接留言告诉我,我会视情况给你们加上去的。

好了,闲话少叙,让我们先来看看为什么要用Swagger?

阅读全文 »

大家好,我是飘渺。SpringBoot老鸟系列的文章已经写了四篇,每篇的阅读反响都还不错,那今天继续给大家带来老鸟系列的第五篇,来聊聊在SpringBoot项目中如何对接口进行限流,有哪些常见的限流算法,如何优雅的进行限流(基于AOP)。

首先就让我们来看看为什么需要对接口进行限流?

阅读全文 »

大家好,我是飘渺。今天继续给大家带来SpringBoot老鸟系列的第六篇,来聊聊在SpringBoot项目中如何实现异步编程。

首先我们来看看在Spring中为什么要使用异步编程,它能解决什么问题?

阅读全文 »

image-20210629123119520

618的时候还是入了我心念念的mac m1 air(16 + 256),通过这段时间的使用有两个体会:

阅读全文 »

孔乙己说:回字有四种写法。

飘乙己也说,list转tree也有4种写法,你用的是哪种?

需求场景

有下面一张区域表,典型的树形结构设计。

阅读全文 »

大家好,我是飘渺!

相信各位在面试时,通常会被问到“什么是索引?” 而你肯定可以脱口而出:索引是提升查询速度的一种数据结构。而索引之所以能提升查询速度,在于它在插入时对数据进行了排序。

在实际业务中,我们会遇到很多复杂的场景,比如对多个列进行查询。这时,可能会要求用户创建多个列组成的索引,如列 a 和 b 创建的组合索引,但究竟是创建(a,b)的索引,还是(b,a)的索引,结果却是完全不同的。

今天,我们就来聊聊更贴近业务实战的组合索引,一起来感受一下组合索引的威力。(当然咯,文章中讲的索引指的是B+树索引,就是那个矮胖子啦)

阅读全文 »