RabbitMQ、RocketMQ、Kafka延迟队列实现

2022-12-22
阅读 3 分钟
2.1k
延迟队列在实际项目中有非常多的应用场景,最常见的比如订单未支付,超时取消订单,在创建订单的时候发送一条延迟消息,达到延迟时间之后消费者收到消息,如果订单没有支付的话,那么就取消订单。

这可能是最全的SpringBoot3新版本变化了!

2022-11-28
阅读 6 分钟
2k
官方提供了一个从 2.7 版本升级到 3.0 的指南:[链接],官方建议在升级到 Spring Boot 3.0 之前先升级到 Spring Boot 2.7。

我服了!SpringBoot升级后这服务我一个星期都没跑起来!(下)

2022-11-22
阅读 7 分钟
2.3k
上一次的升级过程中差不多已经跑起来90%了,这周一上班解决完一点小问题,服务已经正常跑起来了,于是再拿着一些其他的服务测试了一下,又发现了一些其他的报错,所以继续。

SpringBoot3正式版将于11月24日发布:都有哪些新特性?

2022-11-14
阅读 5 分钟
2.4k
从 2018 年 2 月 28 号发布 Spring Boot 2.0 版本开始,整个 2.X 版本已经经过了 4 年多的时间,累计发布了 95 个不同的版本,而就在前不久,2.X 系列的也已经迎来了他的最终版本:2.7。

我服了!SpringBoot升级后这服务我一个星期都没跑起来!(上)

2022-11-08
阅读 6 分钟
4.4k
最近由于各方面的原因在准备升级 Spring Cloud 和 Spring Boot,经过一系列前置的调研和分析,决定把Spring Boot 相关版本从 2.1.6 升级到 2.7.5,Spring Cloud 相关版本从 Greenwich.SR1 升级为 2021.0.4。

NB的Github项目,看到最后一个我惊呆了!

2022-11-04
阅读 3 分钟
3k
最近看到不少好玩的、实用的 Github 项目,就来给大家推荐一把。中国制霸生成器最近在朋友圈非常火的一个小网站,可以在线标记 居住、短居、游玩、出差、路过 标记后可生成图片进行社区分享,标记过的信息会记录到本地存储。简化地图在保留了地缘相接特征的基础上把省级行政区域尽可能简化成了方框,一目了然,或许这也...

我摊牌了!真正的灰度队列实现方案!全网你都搜不到!

2022-10-25
阅读 4 分钟
1.8k
目前,公司方面 RPC 调用如 Dubbo、Feign 已经能支持基于灰度的调用,但是 MQ 还没有支持灰度的能力,因此导致在测试和生产环境业务验证、消息隔离方面体验比较差,因此我们基于 RabbitMQ 和 Kafka 实现了消息灰度的能力。

10分钟教你写一个数据库

2022-10-13
阅读 30 分钟
6.6k
今天教大家借助一款框架快速实现一个数据库,这个框架就是Calcite,下面会带大家通过两个例子快速教会大家怎么实现,一个是可以通过 SQL 语句的方式可以直接查询文件内容,第二个是模拟 Mysql 查询功能,以及最后告诉大家怎么实现 SQL 查询 Kafka 数据。

可恶,又是个线上问题

2022-09-21
阅读 3 分钟
967
这几天,在搞 ShardingSphere,这不又来了一个问题嘛,启动的时候报了一个NPE出来。好在,这个问题不影响使用,只是启动会报点错,接下来,又是辛苦的排查过程。直接定位到报错的地方,发现是ShardingSphere在启动时候去加载表一些元数据信息报错,看到这个地方就很明显的猜测是 map 去 get 的时候报错了。一通往上翻源...

验证一个小小的问题

2022-09-06
阅读 3 分钟
4.7k
在之前的文章提到过一个问题,而且网上很多文章也是这么说的,前几天有人对这个问题提出了一点不同的意见,抱着谨慎的态度做了一个测试。问题是这样的:COMPACT格式下,NULL值列表是否一定会占用一个字节的空间?对于这个问题,我的回答和网上很多回答是一样的,如果都是NOT NULL就不会有NULL值列表,所以不会占用,反之...

给ShardingSphere提了个PR,不知道是不是嫌弃我

2022-08-30
阅读 5 分钟
4.5k
说来惭愧,干了 10 来年程序员,还没有给开源做过任何贡献,以前只知道嘎嘎写,出了问题嘎嘎改,从来没想过提个 PR 去修复他,最近碰到个问题,发现挺简单的,就随手提了个 PR 过去。
封面图

一个奇葩的线上问题,导致我排查了一天

2022-08-25
阅读 3 分钟
442
事情是这样的,最近我们上线了一个刷新用户 token 的功能,也就是 APP 里经常有的,只要你经常操作,就能让你一直保持在线状态,不用一直重新登录,需求就是这么一个并不复杂的需求,也很快的上线了。

程序员最容易读错的单词,听到status我炸了

2022-08-21
阅读 2 分钟
589
最近在跟同事讨论问题的时候,他突然对我说。。。这个死太丢死不太对,需要改一下。。。我当时应该是愣住了,然后想了一下,你说的是 status 吗???看着他疑惑不解的眼神,我当时的表情。。。好吧,好吧,我承认我低估了我们理科同志们的文科英语水平,以至于我发现,我这些年不也是这样水深火热的过来的嘛。于是,带...

我也是醉了,Eureka 延迟注册还有这个坑!

2022-07-25
阅读 5 分钟
1.1k
Eureka 有个延迟注册的功能,也就是在服务启动成功之后不立刻注册到 Eureka Server,而是延迟一段时间再去注册,这样做的主要目的是因为虽然服务启动成功了,可能还有一些框架或者业务的代码没有初始化完成,可能会导致调用的报错,所以需要延迟注册。

这样优化Spring Boot,启动速度快到飞起!

2022-07-21
阅读 10 分钟
4.8k
微服务用到一时爽,没用好就呵呵啦,特别是对于服务拆分没有把控好业务边界、拆分粒度过大等问题,某些 Spring Boot 启动速度太慢了,可能你也会有这种体验,这里将探索一下关于 Spring Boot 启动速度优化的一些方方面面。

从-1开始实现一个中间件

2022-06-21
阅读 6 分钟
985
别人都写从0开始实现xxx,我先从-1开始就显得更牛逼一些。今天,先开个头,来教大家怎么实现一个中间件。新建项目首先,我们新建一个多 module 的项目用于测试。项目包含两个模块,test-infra用户中间件模块的开发,demo用于测试。 {代码...} 开发中间件项目创建 OK 了,接着开始开发一个最最最简单的中间件。在resource...

搭建个人博客,Docsify+Github webhook+JGit解决方案

2022-06-17
阅读 15 分钟
1.8k
研究一会儿,最终还是决定 docsify+github 来弄,初步的想法是本地写好 MD 文件直接 push 到 github上,然后触发 github 的webhook,触发脚本去 pull 代码到服务器上。

Eureka服务下线太慢,电话被告警打爆了

2022-06-08
阅读 2 分钟
564
某天,忽然发现大量的告警,经过多番调查研究考察(此处省略3000字),发现是由于 Eureka 服务下线太慢,而仍然有大量的请求打进来导致的报错。

并发编程从入门到放弃系列开始和结束

2022-06-01
阅读 54 分钟
850
对于 Java 部分的面试来说,突然想到并发这一块的内容是不太完整的,这篇文章会通篇把多线程和并发都大致阐述一遍,至少能够达到了解原理和使用的目的,内容会比较多,从最基本的线程到我们常用的类会统一说一遍,慢慢看。

面试官:你说说一条查询SQL的执行过程

2021-08-03
阅读 2 分钟
1.1k
第一层作为客户端和服务端的连接,连接器负责处理和客户端的连接,还有一些权限认证之类。比如客户端通用用户名密码连接到Mysql服务器,还有对于数据库表的执行权限。

不管卷不卷,面试还是得问问你G1原理!

2021-06-23
阅读 4 分钟
2.1k
所有的垃圾回收器的目的都是朝着减少STW的目的而前进,G1(Garbage First)回收器的出现颠覆了之前版本CMS、Parallel等垃圾回收器的分代收集方式,从2004年Sun发布第一篇关于G1的论文后,直到2012年JDK7发布更新版本,花了将近10年的时间G1才达到商用的程度,而到JDK9发布之后,G1成为了默认的垃圾回收器,CMS也变相地相当...

那个陪我打王者的兄弟进了阿里

2021-06-09
阅读 6 分钟
1.1k
这一次面经的分享来自很早和我一起打王者的兄弟,为啥印象这么深刻呢,因为他鲁班贼6,以至于我单独给他存了个备注。这一次历时两个月,他拿到了一大堆的Offer,恭喜他拿到了心仪的阿里Offer。按照惯例,当然是邀请分享一波面经了。不过这一次是我看见面经里整理的最完善的了,几乎不需要我做什么修改就可以发出来了,再...

现在已经卷到需要问三色标记了吗?

2021-05-28
阅读 4 分钟
1.4k
引用计数,给对象添加一个计数器,每当有地方引用它计数器就+1,反之引用失效时就-1,那么计数器值为0的对象就是可以回收的对象,但是有一个问题就是循环引用的话无法解决。

程序员版孔乙己

2021-04-30
阅读 2 分钟
1.2k
互联网的格局,是和别处不同的:都是格子衫,稀疏的头发,双肩包,男。写代码的人,傍午傍晚散了工,每每三两人,背着手,沿着软件园溜达一圈。倘肯花点钱,便还会走到星巴克,买一杯咖啡,那样便能再多摸几分钟的鱼。我从十九岁起,便在软件园的星巴克打工,老板说,看着还算清秀,就让我去收银。我从此便成为了收银员...

痛!痛!痛!我们的好兄弟Git,一路走好!

2021-04-29
阅读 4 分钟
1.6k
文章是正经文章,标题不要在意,哈哈Git作为现在主流的版本控制工具,但是如何在软件开发过程中进行合理的分支管理是一个见仁见智的问题。接下来我会对比下现有的几种比较普遍的分支管理方式和之前在阿里时候使用Aone的区别。Git Flow先看一张图片,这张图片来自Vincent在2010年提出的方案,完美的诠释了Git Flow的工作...

谈谈中台架构之交易中台

2021-04-22
阅读 3 分钟
3.6k
这些年也经历了从交易到金融中台的体验,对中台也算是有个比较粗略的理解,这些年的中台真的有没有那么好,甚至于现在想到什么业务就想搞中台,想做什么就想往中台迁移,好像中台就是万能的,没有中台既不能显示自己的能力,又不能突出自己的水平。

一个单例还能写出花来吗?

2021-04-15
阅读 4 分钟
805
常见的单例写法就是饿汉式、懒汉式、双重加锁验证、静态内部类和枚举的方式,写法可能大家都知道,不过针对不同的写法还是有可以继续深挖一下的地方,让我们从最简单的几种写法开始回顾单例,不想看前面的话直接往后翻好了。

为什么数据库字段要使用NOT NULL?

2021-04-05
阅读 4 分钟
8.6k
最近刚入职新公司,发现数据库设计有点小问题,数据库字段很多没有NOT NULL,对于强迫症晚期患者来说,简直难以忍受,因此有了这篇文章。基于目前大部分的开发现状来说,我们都会把字段全部设置成NOT NULL并且给默认值的形式。通常,对于默认值一般这样设置:整形,我们一般使用0作为默认值。字符串,默认空字符串时间,...

《我想进大厂》之分布式锁夺命连环9问 | 大理版人在囧途

2021-03-08
阅读 5 分钟
1.9k
昨天早上11点飞大理,结果9点钟要出门的时候发现密码锁坏了,不用密码都能打开,一边司机师傅在催着走,一边连忙打电话给房东和客服找人维修,这是第一。

面试官:缓存一致性问题怎么解决?

2020-12-21
阅读 2 分钟
8.6k
关于Redis的其他的一些面试问题已经写过了,比如常见的缓存穿透、雪崩、击穿、热点的问题,但是还有一个比较麻烦的问题就是如何保证缓存一致性。