Java日知录

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

0%

当有人问你如何对数据库进行优化时,很多人第一反应想到的就是SQL优化,如何创建索引,如何改写SQL。他们把数据库优化与SQL优化划上了等号。当然这不能算是完全错误的回答,只不过思考的角度稍微片面了些,太“程序员思维”化了,没有站在更高层次来回答。那今天我们就将视角拔高,站在架构的角度来聊聊这一问题,数据库优化可以从哪些维度入手?

阅读全文 »

案例背景

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

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

  • 在做分库分表时,基于 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)。

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

阅读全文 »

image-20210629123119520

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

阅读全文 »

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

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

需求场景

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

阅读全文 »