摘要: 原文地址 代码地址 问题 长链接场景下通常有一个类似 Map<String, Set<Long>> 的结构,用来查找一个逻辑组内的哪些用户,String 类型的 Entry.key 是逻辑组 key,Set<Long> 类型的 Entry.value 存放逻辑组内的用户 Id,那么这个 Map 显然 阅读全文
posted @ 2022-11-18 15:57 hligy 阅读(174) 评论(0) 推荐(1) 编辑
摘要: 原文地址 文中出现的代码模板地址 简介 云服务一般提供了一个文档来描述提供的 OpenAPI,然会每个用户根据文档自己实现签名、调用等功能的封装,这部分会出现各种各样的问题,因此用户更希望平台直接提供一个 SDK。 darabonba darabonba 是阿里云开源的用于 OpenAPI 的 DS 阅读全文
posted @ 2022-09-21 11:17 hligy 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 最近需要对用户进行限流,经过一番查找,发现 Bucket4j 官网推荐的第三方文章有一篇详细的分布式限流讲解 如何在 Java 中通过 Bucket4j 提供速率限制 - DZone Java,分布式暂时还用不上,因此参考着写了一个单机的。 依赖 <dependency> <groupId>com. 阅读全文
posted @ 2022-09-01 17:12 hligy 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 介绍 SFTP 是一种通过 SSH 实现的安全文件传输协议,不需要安装任何的软件就能传输文件。 依赖 haibaracp-spring-boot-starter 支持密码、密钥连接以及多主机连接,本文只介绍一些基础 API(上传、下载),更多 API 详见 GitHub - hligaty/haib 阅读全文
posted @ 2022-01-27 16:44 hligy 阅读(404) 评论(0) 推荐(0) 编辑
摘要: 前言 写了一个 Sftp 的 Starter,开始写的时候比较混乱,于是看了看 Spring 官方的 Starter,所以本文是我根据官方 Starter 得出的标准 Starter 的理解,下面出现的 Xxx 你可以用 Redis、Hibernate、Sftp 等等名词替换。 文中只是自己的理解, 阅读全文
posted @ 2022-01-19 13:28 hligy 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 前言 多数据源的核心就是向 IOC 容器注入 AbstractRoutingDataSource 和如何切换数据源。注入的方式可以是注册 BeanDefinition 或者是构建好的 Bean,切换数据源的方式可以是方法参数或者是注解切换(其他的没想象出来),具体由需求决定。 我的需求是统计多个库的 阅读全文
posted @ 2021-11-04 11:08 hligy 阅读(2696) 评论(1) 推荐(2) 编辑
摘要: 前言 垃圾回收器的并行并发是和操作系统并行并发不同的两个概,另外只要标记时用户线程没运行未被标记的对象就可以回收。 并行:指多个 GC 进程同时运行,此时用户线程停止运行(STW,Stop The World)。 并发:指用户线程与 GC 线程同时运行。 性能指标 垃圾回收器的性能有三个指标:内存占 阅读全文
posted @ 2021-09-27 10:10 hligy 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 前言 介绍 JVM。基于 JDK8、64 位 HotSpot,所有“接口”都用实现的“类”描述,比如方法区之于元空间和堆、记忆集之于卡表。 JVM 内存结构 JVM 虚拟机数据区:程序计数器、本地方法栈、虚拟机栈、堆(线程共享)。 本地内存:元空间(线程共享)、直接内存(线程共享)。 未说明的是线程 阅读全文
posted @ 2021-09-22 16:46 hligy 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 生成密钥和证书 秘钥和证书请求文件 在 nginx 的 conf 创建 crt 目录,生成私钥和证书请求文件 [123@123 crt]$ openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr 填写证书 阅读全文
posted @ 2021-08-18 17:56 hligy 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 数据结构 HashMap 是一个存储键值对的数据结构,主体是由一个数组构成,数组的大小有限,因此当 key 的 hash 相等时通过拉链法解决冲突,也就是在之前的 key 后面连接一个节点组成链表,当链表长度过长时该链表可能会变为红黑树提高查询效率。 构造函数 第一个构造函数包含两个参数, init 阅读全文
posted @ 2021-08-16 14:06 hligy 阅读(22) 评论(0) 推荐(0) 编辑