随笔分类 -  Java

摘要:实现 Expiry 接口 public class CaffeineExpiry implements Expiry<String, Object> { @Override public long expireAfterCreate(@NonNull String key, @NonNull Obj 阅读全文
posted @ 2023-06-21 09:34 VictorBu 阅读(4212) 评论(1) 推荐(0) 编辑
摘要:在软件开发中 id 通常为 int 或者 long 类型,有时会有混淆 id 的需求,比如反爬虫。Hashids 是一个小型的开源库,可以将数字或者十六进制字符串转换成唯一的、非顺序的 id。 使用 添加依赖 <dependency> <groupId>org.hashids</groupId> < 阅读全文
posted @ 2022-01-26 10:02 VictorBu 阅读(883) 评论(0) 推荐(0) 编辑
摘要:Google Authenticator 的原理是服务器随机生成一个密钥并保存并告知客户端。用户需要登陆时客户端根据密钥和时间戳通过一种算法生成一个6位数字的密码。本文使用 java.util.zip.CRC32 模仿 Google Authenticator 实现此功能。 /** * 生成验证码 阅读全文
posted @ 2021-05-28 10:55 VictorBu 阅读(691) 评论(0) 推荐(0) 编辑
摘要:spring: kafka: bootstrap-servers: IP:端口 listener: missing-topics-fatal: false properties: sasl: mechanism: PLAIN jaas: config: 'org.apache.kafka.commo 阅读全文
posted @ 2020-09-03 20:40 VictorBu 阅读(6675) 评论(0) 推荐(1) 编辑
摘要:Paho 自动重连后订阅的主题会清空,所以需要实现 MqttCallbackExtended 接口,在 connectComplete 方法添加订阅主题;而不是实现 MqttCallback 接口 一、添加引用 <dependency> <groupId>org.eclipse.paho</grou 阅读全文
posted @ 2020-07-17 10:52 VictorBu 阅读(3611) 评论(1) 推荐(1) 编辑
摘要:关于 JJWT 的使用,可以参考之前的文章:JJWT 使用示例 一、鉴权过滤器 @Component public class JwtAuthenticationTokenFilter extends OncePerRequestFilter { @Override protected void d 阅读全文
posted @ 2020-06-24 11:48 VictorBu 阅读(1166) 评论(0) 推荐(0) 编辑
摘要:MinIO 是一个非常轻量的基于 Apache License v2.0 开源协议的对象存储服务。它兼容亚马逊 S3 云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几 kb 到最大 5T 不等。 一、Min 阅读全文
posted @ 2020-06-18 10:36 VictorBu 阅读(2294) 评论(0) 推荐(0) 编辑
摘要:需要实现看门狗功能,定时检测另外一个程序是否在运行,使用 crontab 仅可以实现检测程序是否正在运行,无法做到扩展,如:手动重启、程序升级(如果只需要实现自动升级功能可以使用 inotify)等功能;最后决定使用 Spring Boot 调用 Shell 脚本来实现 一、脚本 1.1 启动脚本 阅读全文
posted @ 2020-06-12 17:11 VictorBu 阅读(2384) 评论(0) 推荐(0) 编辑
摘要:一、Canal Admin 安装与配置 1.1 下载 wget https://github.com/alibaba/canal/releases/download/canal-1.1.4/canal.admin-1.1.4.tar.gz tar zxvf canal.admin-$version. 阅读全文
posted @ 2020-06-09 19:54 VictorBu 阅读(4832) 评论(0) 推荐(1) 编辑
摘要:canal 是阿里巴巴开源的 MySQL binlog 增量订阅&消费组件 canal 工作原理: canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送dump 协议 MySQL master 收到 dump 请求,开始推送 阅读全文
posted @ 2020-06-08 10:40 VictorBu 阅读(285) 评论(0) 推荐(0) 编辑
摘要:在 Elasticsearch、Kibana、Beats 安装 中讲到推荐架构: 本文基于 Logstash + Beats 读取 Spring Boot 日志 将其改为上述架构 如果没有安装 Kafka 需要首先安装:http://kafka.apache.org/quickstart ,如果需要 阅读全文
posted @ 2020-06-05 11:47 VictorBu 阅读(379) 评论(0) 推荐(0) 编辑
摘要:一、Spring Boot 日志配置 采用 Spring Boot 默认的 Logback: <?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="10 seconds"> <contextName 阅读全文
posted @ 2020-06-04 21:08 VictorBu 阅读(1715) 评论(0) 推荐(0) 编辑
摘要:本文使用 Filebeat,如果没有安装需要安装: curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.7.0-linux-x86_64.tar.gz tar xzvf filebeat-7.7.0- 阅读全文
posted @ 2020-06-03 09:25 VictorBu 阅读(419) 评论(0) 推荐(0) 编辑
摘要:一、安装与启动 Logstash 依赖 Java 8 或者 Java 11,需要先安装 JDK 1.1 下载 curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-7.7.0.rpm 1.2 安装 sudo rpm - 阅读全文
posted @ 2020-06-02 15:43 VictorBu 阅读(326) 评论(0) 推荐(0) 编辑
摘要:Elastic Stack 包括 Elasticsearch、Kibana、Beats 和 Logstash,也称为 ELK Stack。能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化。 Elastic 产品生态: Elastic 协同: 推荐架构: 前置事项 本 阅读全文
posted @ 2020-06-01 17:52 VictorBu 阅读(624) 评论(0) 推荐(0) 编辑
摘要:问题描述 在之前的博客介绍了如何在 Spring Boot 集成 MQTT,后面使用中没有发现问题,最近发现一直报错: Lost connection: Connection lost; retrying... Lost connection: 已断开连接; retrying... 解决过程 网上说 阅读全文
posted @ 2020-05-29 10:30 VictorBu 阅读(11419) 评论(0) 推荐(1) 编辑
摘要:一、Flyway 介绍 Flyway 是一个开源的数据库迁移工具,MySQL, SQL Server, Oracle 等二十多种数据库 在 Flyway 中数据库的所有改变均称为迁移(migration),迁移分为两种:基于版本控制的迁移(versioned)和可重复执行的迁移(repeatable 阅读全文
posted @ 2020-05-26 16:14 VictorBu 阅读(892) 评论(0) 推荐(0) 编辑
摘要:虽然工作挺多年了,也只是简单看了看数据恢复的方法,并未实操过,这次真摊上这事了,发现没那么简单。 问题描述 事件 生产环境某个表的数据被全部删除 问题 数据库使用阿里云 RDS,数据隔天完整备份,没有单表备份 系统运行中,不能停机维护 期望只恢复被清空的表的数据,不影响其他表 一、寻找解决方案 1. 阅读全文
posted @ 2020-05-25 11:01 VictorBu 阅读(336) 评论(0) 推荐(0) 编辑
摘要:问题描述 Feign 客户端捕获不到服务端抛出的异常 问题解决 重新 ErrorDecoder 即可,比如下面例子中在登录鉴权时想使用认证服务器抛出 OAuth2Exception 的异常,代码如下: import com.fasterxml.jackson.databind.ObjectMappe 阅读全文
posted @ 2020-04-27 16:38 VictorBu 阅读(11223) 评论(4) 推荐(0) 编辑
摘要:一、添加依赖包 <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt-api</artifactId> <version>0.11.1</version> </dependency> <dependency> <groupI 阅读全文
posted @ 2020-04-23 00:56 VictorBu 阅读(4694) 评论(0) 推荐(1) 编辑