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.2k
上一次的升级过程中差不多已经跑起来90%了,这周一上班解决完一点小问题,服务已经正常跑起来了,于是再拿着一些其他的服务测试了一下,又发现了一些其他的报错,所以继续。

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

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

10分钟教你写一个数据库

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

可恶,又是个线上问题

2022-09-21
阅读 3 分钟
963
这几天,在搞 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 分钟
437
事情是这样的,最近我们上线了一个刷新用户 token 的功能,也就是 APP 里经常有的,只要你经常操作,就能让你一直保持在线状态,不用一直重新登录,需求就是这么一个并不复杂的需求,也很快的上线了。

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

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

从-99打造Sentinel高可用集群限流中间件

2022-08-04
阅读 11 分钟
1.4k
接上篇Sentinel集群限流探索,上次简单提到了集群限流的原理,然后用官方给的 demo 简单修改了一下,可以正常运行生效。这一次需要更进一步,基于 Sentinel 实现内嵌式集群限流的高可用方案,并且包装成一个中间件 starter 提供给三方使用。对于高可用,我们主要需要解决两个问题,这无论是使用内嵌或者独立模式都需要解...

我也是醉了,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 分钟
979
别人都写从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 分钟
562
某天,忽然发现大量的告警,经过多番调查研究考察(此处省略3000字),发现是由于 Eureka 服务下线太慢,而仍然有大量的请求打进来导致的报错。

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

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

又碰到一个奇葩的BUG

2021-11-08
阅读 2 分钟
1.1k
最近线上发生了一个问题,同事找我说有个用户名字不对,正则验证不通过。于是我就去数据库查询看了下这个用户的名字信息,就长这个样子。没仔细看好像没啥问题啊,但是认真看了两遍发现好像不太对,怎么这个字这么宽呢?我靠,这塔喵的是好像是全角啊!具体原因就是因为插入的名字是全角的,导致其他地方调用接口取名字...

公司内部做的一个分享,有缘人可见

2021-11-08
阅读 7 分钟
1.6k
公司内做的一个简单的分享,文章内容是我根据自己讲的还有录像又手撸了一遍,累。今天给大家分享一下关于架构和中台的一些东西。主要会介绍一下中台的来源,这个大家可能都比较清楚,网上的文章和视频啊一大堆。还有就是关于架构的发展过程不得不在中间说明一下,由此引申出来中台的诞生。最后会就关于交易中台和金融中...

说下你可能没用过的EventBus

2021-09-23
阅读 6 分钟
1k
最近在Code Review的时候发现了这样一个业务场景,某个业务处理完成之后需要通知审核人员,通知的方式包含短信和邮件,所以代码大致是这样:

面试官:你说说限流的原理?

2021-09-14
阅读 13 分钟
2.3k
限流作为现在微服务中常见的稳定性措施,在面试中肯定也是经常会被问到的,我在面试的时候也经常喜欢问一下你对限流算法知道哪一些?有看过源码吗?实现原理是什么?

索引下推,这个点你肯定不知道!

2021-08-30
阅读 2 分钟
3.8k
索引下推(Index Condition Pushdown) ICP 是Mysql5.6之后新增的功能,主要的核心点就在于把数据筛选的过程放在了存储引擎层去处理,而不是像之前一样放到Server层去做过滤。

拿捏!隔离级别、幻读、Gap Lock、Next-Key Lock

2021-08-23
阅读 4 分钟
5.8k
前面我写了很多Mysql相关的知识点,到这一篇稍微可以串一下了,从SQL执行流程、MVCC到锁,很多时候可能觉得对于间隙锁和Next-Key Lock好像已经理解了,但是好像又觉得理解差那么一点意思,这篇文章从头来梳理一下概念,明确一下这些知识。

面试官:你说说一条更新SQL的执行过程?

2021-08-18
阅读 2 分钟
2.1k
在上一篇《面试官:你说说一条查询SQL的执行过程?》中描述了Mysql的架构分层,通过解析器、优化器和执行引擎完成一条SQL查询的过程,那这一篇续上继续说明一条更新SQL的执行过程。

听说你对explain 很懂?

2021-08-09
阅读 4 分钟
1.7k
explain所有人都应该很熟悉,通过它我们可以知道SQL是如何执行的,虽然不是100%管用,但是至少大多数场景通过explain的输出结果我们能直观的看到执行计划的相关信息。

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

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

高考完了要选专业了,不要让无知毁了你的一生

2021-06-27
阅读 3 分钟
1.1k
今年是2021年,紧张的高考已经结束了,成绩也已经公布了,接下来又到了紧张刺激的选学校、选专业的时候了。不用怀疑的说,计算机依然会是最热门的专业。对于成绩好的同学来说,可能是随便选选就行了,那对于成绩不好的同学来说,该怎么选择?这两年,家里都有小朋友面临了这个问题。从中国的应试教育来说,其实大家都很...