随笔分类 - 后端技术
摘要:延迟队列在实际项目中有非常多的应用场景,最常见的比如订单未支付,超时取消订单,在创建订单的时候发送一条延迟消息,达到延迟时间之后消费者收到消息,如果订单没有支付的话,那么就取消订单。 那么,今天我们需要来谈的问题就是RabbitMQ、RocketMQ、Kafka中分别是怎么实现延时队列的,以及他们对
阅读全文
摘要:chatGPT 是什么? 一款目前超级火的 AI 对话聊天工具,只是不同于其他的智能聊天机器人那样,他非常的智能。 可以回答你的技术问题、帮你写代码、还能帮你写小说等等,发挥你的想象力,让他干点啥都行。 比如让他帮你用 JAVA 实现一个二分排序。 可以再问难一点的问题,比如我们最近线上碰到了这个进
阅读全文
摘要:最近看到不少好玩的、实用的 Github 项目,就来给大家推荐一把。 1. 跨平台终端 Tabby(前身是 Terminus) 是一个可高度配置的终端模拟器和 SSH 或串口客户端,支持 Windows,macOS 和 Linux。 还有一些功能比较常见和易于使用的: 集成了 SSH,Telnet
阅读全文
摘要:11月24号,Spring Boot 3.0 发布了第一个正式的 GA 版本,一起看看新版本到底有哪些变化。 2.7版本升级指南 官方提供了一个从 2.7 版本升级到 3.0 的指南:https://github.com/spring-projects/spring-boot/wiki/Spring
阅读全文
摘要:上一次的升级过程中差不多已经跑起来90%了,这周一上班解决完一点小问题,服务已经正常跑起来了,于是再拿着一些其他的服务测试了一下,又发现了一些其他的报错,所以继续。 14. DiscoveryEnabledServer Not Found 主要问题还是 eureka 中没有了 ribbon 相关的依
阅读全文
摘要:从 2018 年 2 月 28 号发布 Spring Boot 2.0 版本开始,整个 2.X 版本已经经过了 4 年多的时间,累计发布了 95 个不同的版本,而就在前不久,2.X 系列的也已经迎来了他的最终版本:2.7。 前几天我还写了一篇关于 Spring Boot 从 2.1 版本升级到 2.
阅读全文
摘要:最近由于各方面的原因在准备升级 Spring Cloud 和 Spring Boot,经过一系列前置的调研和分析,决定把Spring Boot 相关版本从 2.1.6 升级到 2.7.5,Spring Cloud 相关版本从 Greenwich.SR1 升级为 2021.0.4。 升级包含基础的业务
阅读全文
摘要:最近看到不少好玩的、实用的 Github 项目,就来给大家推荐一把。 中国制霸生成器 最近在朋友圈非常火的一个小网站,可以在线标记 居住、短居、游玩、出差、路过 标记后可生成图片进行社区分享,标记过的信息会记录到本地存储。 简化地图在保留了地缘相接特征的基础上把省级行政区域尽可能简化成了方框,一目了
阅读全文
摘要:背景 目前,公司方面 RPC 调用如 Dubbo、Feign 已经能支持基于灰度的调用,但是 MQ 还没有支持灰度的能力,因此导致在测试和生产环境业务验证、消息隔离方面体验比较差,因此我们基于 RabbitMQ 和 Kafka 实现了消息灰度的能力。 灰度场景 大部分场景下 MQ 的灰度并不会像 R
阅读全文
摘要:今天教大家借助一款框架快速实现一个数据库,这个框架就是Calcite,下面会带大家通过两个例子快速教会大家怎么实现,一个是可以通过 SQL 语句的方式可以直接查询文件内容,第二个是模拟 Mysql 查询功能,以及最后告诉大家怎么实现 SQL 查询 Kafka 数据。 Calcite Calcite
阅读全文
摘要:这几天,在搞 ShardingSphere,这不又来了一个问题嘛,启动的时候报了一个NPE出来。 好在,这个问题不影响使用,只是启动会报点错,接下来,又是辛苦的排查过程。 直接定位到报错的地方,发现是ShardingSphere在启动时候去加载表一些元数据信息报错,看到这个地方就很明显的猜测是 ma
阅读全文
摘要:在之前的文章提到过一个问题,而且网上很多文章也是这么说的,前几天有人对这个问题提出了一点不同的意见,抱着谨慎的态度做了一个测试。 问题是这样的:COMPACT格式下,NULL值列表是否一定会占用一个字节的空间? 对于这个问题,我的回答和网上很多回答是一样的,如果都是NOT NULL就不会有NULL值
阅读全文
摘要:说来惭愧,干了 10 来年程序员,还没有给开源做过任何贡献,以前只知道嘎嘎写,出了问题嘎嘎改,从来没想过提个 PR 去修复他,最近碰到个问题,发现挺简单的,就随手提了个 PR 过去。 问题 问题挺简单的,就是在使用 mybatis 和 ShardingSphere 的时候,有人在 model 类使用
阅读全文
摘要:昨天线上又出了个问题,花了一天的时间才找到原因,说起来原因其实特别的坑爹啊。 事情是这样的,最近我们上线了一个刷新用户 token 的功能,也就是 APP 里经常有的,只要你经常操作,就能让你一直保持在线状态,不用一直重新登录,需求就是这么一个并不复杂的需求,也很快的上线了。 但是上线之后发现了一个
阅读全文
摘要:最近在跟同事讨论问题的时候,他突然对我说。。。 这个死太丢死不太对,需要改一下。。。 我当时应该是愣住了,然后想了一下,你说的是 status 吗??? 看着他疑惑不解的眼神,我当时的表情。。。 好吧,好吧,我承认我低估了我们理科同志们的文科英语水平,以至于我发现,我这些年不也是这样水深火热的过来的
阅读全文
摘要:接上篇Sentinel集群限流探索,上次简单提到了集群限流的原理,然后用官方给的 demo 简单修改了一下,可以正常运行生效。 这一次需要更进一步,基于 Sentinel 实现内嵌式集群限流的高可用方案,并且包装成一个中间件 starter 提供给三方使用。 对于高可用,我们主要需要解决两个问题,这
阅读全文
摘要:Eureka 有个延迟注册的功能,也就是在服务启动成功之后不立刻注册到 Eureka Server,而是延迟一段时间再去注册,这样做的主要目的是因为虽然服务启动成功了,可能还有一些框架或者业务的代码没有初始化完成,可能会导致调用的报错,所以需要延迟注册。 但是发现,然并卵啊,好像这个延迟注册并没有生
阅读全文
摘要:微服务用到一时爽,没用好就呵呵啦,特别是对于服务拆分没有把控好业务边界、拆分粒度过大等问题,某些 Spring Boot 启动速度太慢了,可能你也会有这种体验,这里将探索一下关于 Spring Boot 启动速度优化的一些方方面面。 启动时间分析 IDEA 自带集成了 async-profile 工
阅读全文
摘要:别人都写从0开始实现xxx,我先从-1开始就显得更牛逼一些。 今天,先开个头,来教大家怎么实现一个中间件。 新建项目 首先,我们新建一个多 module 的项目用于测试。 项目包含两个模块,test-infra用户中间件模块的开发,demo用于测试。 <?xml version="1.0" enco
阅读全文
摘要:一开始博客使用的 Halo,发现问题比较多啊,时不时的莫名其妙主题各种报错,有时候还要升级,麻烦的要死,于是就想弄简单点。 这两天抽空反复倒腾了一遍,不小心还把镜像给尼玛删了,发的文章都没了,痛定思痛,要做改变! 众所周知,我懒出名了,我觉得这种事情你不要老是让我操心啊,最好是一年都不要动一下才好,
阅读全文