2024

使用canal实现MySQL数据同步至中间件

Canal 简介canal 主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。基于日志增量订阅和消费的业务,我们可以实现以下业务需求: 数据库镜像 数据库实时备份 索引构建和实时维护(拆分异构索引、倒排索引等) 业务 cache 刷新 带业务逻辑的增量数据处理 MySQL主备复制原理 MySQL master 将数据变更写入二进制日志( binary log, 其中记 ...

2023

RabbitMQ 延迟队列的实现

使用场景 用户下单成功后,超过N分钟未支付则自动取消订单; 秒杀活动开始前N分钟对设置了提醒的用户进行推送提醒; 预定工作会议,会议开始前N分钟进行通知参会人员。 实现延迟队列的两种方式: 死信队列 + 消息过期 延迟消息插件(rabbitmq-delayed-message-exchange) 基于死信队列(DLX+TTL)实现实现的原理就是:给一个消息设定 TTL,但是不消费这个消息,等 ...

解决 Skywalking 追踪 RabbitMQ 无 TID 的问题

问题描述线上系统中,使用 Skywalking 监视和追踪服务过程中,发现 RabbitMQ 的消费丢失 TID,导致在排查线上问题时遇到很多麻烦,不能及时发现问题。 2023-03-09 05:55:34.774 [service-trade] [TID:N/A] [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#0 ...

Hexo Next 修复 leancloud 原 CDN 失效导致无法获取文章阅读量的错误

我的博客自2021年以来就没能正常记录和显示阅读量,此前知道是 leancloud CDN失效了导致的,但一直没能修改,最近有时间就改了,遂写篇文章记录一下。 解决方案 编辑文件 /layout/_third-party/analytics/leancloud-analytics.swig,内容如下: {% if theme.leancloud_visitors.enable ...

2023的第一篇博客:新年快乐

时间飞逝,转眼间,来到了2023年,回顾2022年,也许我们每个人都会有很深的感触,我们一起经历了新冠肺炎疫情,与病毒抗争了长达三年。也许在未来的很长一段时间内,我们依然跟病毒斗争,但我相信,未来会慢慢变好。 2022年,发生了很多事,有失去,也有收获。我本来是想给自己写篇年度总结,奈何工作忙也无心去回顾那不堪的上半年,因此想法暂时搁置。 感谢一直帮助我的朋友们,也感谢同事们今年以来的关照与指导, ...

2022

使用阿里云ECS经过Nginx反向代理OSS走内网流量导出系统镜像

背景最近我有一台用了3年的阿里云服务器即将到期,除了平时的数据备份,我想直接将整台服务器镜像导出到本地,方便以后查看相关数据和配置信息。阿里云支持将系统镜像导出到OSS,然后我们可以从OSS上下载镜像文件到本地,但是OSS的公网流量是要付费的,具体的资费详情可以看下图。后来在网上查相关资料,发现可以通过云服务器反向代理,通过云服务器来中转下载OSS镜像文件。因为OSS内网流量是免费的,正好我那台即 ...

2021

Java基础之IO流详解

流在 Java API 中,可以从中读取一个字节序列的对象叫做 输入流,可以向其中写入一个字节序列的对象叫做 输出流。这些字节序列的来源地和目的地可以是文件、网络连接、内存块等。 抽象类 InputStream 和 OutputStream 是构成 输入/输出(I/O)类层次结构的基础。 由于面向字节的流不便处理 Unicode 字符,于是衍生出了字符流,抽象类 Reader 和 Writer 是 ...

Java 常用设计模式之工厂模式

简单工厂模式工厂模式用于实现逻辑的封装,并通过公共的接口提供对象的实例化服务,在添加新的类时只需做少量的修改。 TeaFactory 类中包含 GreenTea、RedTea、GuanYinTea 的实例化方法 createTea(),当客户需要对象时,调用 TeaFactory 的 createTea() 方法,并传所需的对象类型即可。TeaFactory 实例化相应的对象(如 GreenTea ...

Minio直传方案之前端实现:Vue+Element+Axios实现分片上传至Minio

后端实现方式请查看另一篇文章:Minio直传方案之后端实现:Spring Boot 整合 Minio 实现直传功能。 前言​ 一般的 minio 使用中,我们基本都是前端上传到服务器,再由服务器上传至 minio 平台。在上传小文件时并没有什么问题,但在上传大文件时就显得不稳定及上传效率低,因为要经过后台服务器中转。 ​ 我在想如果不经过后台服务中转,由前端直接上传至 minio, ...

Minio直传方案之后端实现:Spring Boot 整合 Minio 实现直传功能

前端实现方式请查看另一篇文章:Minio直传方案之前端实现:Vue+Element+Axios实现分片上传至Minio。 前言​ 一般的 minio 使用中,我们基本都是前端上传到服务器,再由服务器上传至 minio 平台。在上传小文件时并没有什么问题,但在上传大文件时就显得不稳定及上传效率低,因为要经过后台服务器中转。 ​ 我在想如果不经过后台服务中转,由前端直接上传至 ...