- 博客(199)
- 资源 (1)
- 收藏
- 关注
原创 操作系统的文件系统基础
扇区 是硬盘或其他存储设备上最小的物理存储单元。一个扇区的大小通常为 512 字节 或 4 KB,具体取决于硬盘的格式和设计。簇 是文件系统中用于管理磁盘空间的最小分配单元。一个簇由一个或多个相邻的扇区组成,通常是 2 的幂(例如,2 扇区 = 1 KB,4 扇区 = 2 KB,8 扇区 = 4 KB,等)。连续存储: 文件的所有数据块在磁盘上是连续排列的,没有被其他文件的数据块分隔开。这意味着文件的第一个数据块紧跟着第二个数据块,第二个紧跟第三个,依此类推,直到文件的最后一个数据块。
2024-08-16 09:30:32 1260
原创 Docker - Nacos
它是用 Java 编写的,支持嵌入式和客户端/服务器模式。Derby 设计轻量,易于嵌入到 Java 应用程序中,适用于小型应用和开发测试环境。Nacos 的数据保存在数据库中, 可以选 Derby / MySQL, 这里用 MySQL, 需要提前执行数据库初始化脚本。在配置管理中随便添加一条配置, 在数据库 config_info 表中可以看到。先快速启动一次 Nacos, 以便在对应 Volume 中生成数据。指定开启鉴权(默认未开启), 启动 Nacos 容器。指定以单机方式启动, 通过。
2024-08-13 15:29:02 506
原创 Windows 11 安装 安卓子系统 (WSA)
Windows Subsystem for Android 或 WSA 是由 Hyper-V 提供支持的虚拟机,可在 Windows 11 操作系统上运行 Android 应用程序。要通过 ADB 安装 APK, 需要先将 ADB 连接到 WSA, 要连接到 WSA, 需要先启动 WSA。目前我们还没有启动 WSA, 所以 ADB 无法连接到 WSA, 不能执行相关命令。, 启动完成后才算是真正启动了安卓子系统. 在弹出的安卓窗体中, 打开。解压到某个路径, 并将该路径添加到。使用 "开发者选项"
2024-07-01 10:47:50 14465 2
原创 CentOS 7 内存占用过大导致 OOM Killer 杀掉了 Java 进程
上述是一个查看 OOM Killer 给各个进程打分的脚本, 执行该脚本即可找出最有可能被杀掉的进程, 从左到右分别是 score pid cmdline, 分数越高被杀的优先级越高。的机制, 大致就是该机制会监控那些占用内存过大(尤其是瞬间占用内存很快的进程), 然后防止内存耗尽而自动把该进程杀掉。该服务器内存常年处于快被占满的状态, 怀疑是内存原因, 导致服务器主动杀死了该应用的 Java 进程。测试服务器, 有一个 Java 应用, 其进程偶尔会消失掉, 已排除人为杀死的可能。
2024-06-27 15:06:47 789
原创 Docker - Oracle Database 23ai Free
Docker 官方没有提供 Oracle Database 相关镜像, 但是 Oracle 官方有提供, 打开上面的链接, 选择 Database, 选择合适的版本, 如 enterprise, express 和 free, 这里以 free 为例. Free 分为 FULL 和 LITE 两个版本, 这里以 LITE 为例。
2024-06-24 10:52:58 755
原创 Docker - Kafka
找一份 redis.conf 配置文件, 放到卷 redis 中, 按需修改。Kafka 目前没有官方镜像, 选择目前拉取次数最多的。
2024-05-28 19:28:18 791
原创 Nginx 请求的 匹配规则 与 转发规则
Nginx 使用请求 URL 中的 path 部分(被称为 URI) 与 Location 配置做匹配, 如果 path 不存在, 则认为 path 为。Nginx 会将 URL 做如下规范化处理, 然后再根据 Location 配置, 开始尝试匹配。开头的被称为 Named Location, 这种不能用于常规请求处理, 而是用于请求重定向。Location 常用配置有两种, 一种叫做。通常, 一个 URL 由一下部分组成。
2024-04-10 23:59:21 1595
原创 Docker - 镜像加速
命令, 用于在服务器间安全地拷贝文件, 中途需输入服务器密码等信息. 所以, 我们可以在 PWD 把镜像打包, 然后传到我们自己的服务器, 再载入该镜像, 即可成功安装对应镜像。网上的方法是配置镜像加速器, 我自己测试了一圈, 发现只有阿里云的镜像加速勉强能用 (可能是我操作不对), 但是阿里云的镜像库比较老,, 我们可以使用该工具来做我们主机能做的所有事情, 该工具连接着真正的互联网。版本基本不对, 很多新版本的镜像也拉不下来, 不能满足使用要求。命令, 用来备份和载入镜像, Linux 有一个。
2024-04-10 21:53:29 1108
原创 Docker - Windows 11 下 Docker Desktop 的 下载 安装 配置 使用
在 Images 面板可以点击 Action 的 Run 按钮来创建并启动一个容器, 在这里, 我设置容器名称为 redis, 印射的主机端口为 6379, 印射的主机路径为一个名为 redis 的 volume, 而不是一个 Windows 路径, 印射的容器路径为 /data, 然后启动容器, 等效于执行如下命令, 使用的是 Redis 默认配置。其实也没什么好配置的, 镜像保存位置可以改一改, 这个内容我们也无法直接查看, 而且我只有一个 C 盘, 所以就不改了, 没有必要。
2024-03-27 12:52:44 6381 3
原创 Redisson 延时队列 监听线程中调用 return 造成线程终止 消息积压 无法被消费
监听线程死循环 take 阻塞队列, 当延时队列中的消息到期, 会被转存到阻塞队列共监听线程消费, 如果一定时间内未消费, 则会创建普通队列, 并把消息转存进去, 待监听线程重新上线, 先读取普通队列内的消息, 读取完后会删除普通队列, 再阻塞读取阻塞队列内的消息。开发使用 Redisson 延时队列, 完成编码后, 自测没有问题, 在发版时以夹带私货的方式上线了, 在生产运行中出现消息消息无法消费的情况。生产上线不要夹带私货, 私货往往没有经过完整的测试流程验证, 容易出问题。
2024-01-23 11:47:37 741
原创 NVM (Node Version Manager) 安装使用
选择通过 nvm 激活的某个 node.js 的访问路径, 根据 nvm 安装路径及下图的配置, nvm 激活某版本 (如 20.11.0) node.js 的时候, 会在 c:\coder\develop 路径下, 创建一个名为 node.js 快捷方式, 指向 c:\coder\develop\nvm\v20.11.0 路径, 即下载并激活的 node.js 版本的路径, 访问该快捷方式就相当于访问该 node.js。, 目前 72.3k Star, 不支持 Windows 系统,
2024-01-21 11:21:02 1095
原创 Spring 启动过程
Spring启动流程详解通常,我们说的 Spring 启动,就是构造 ApplicationContext 对象以及调用 refresh() 方法的过程。
2024-01-15 11:19:12 1088
原创 MySQL BinLog 数据还原恢复
本次还原的流程是, 重现 binlog 中拷贝表的步骤, 还原 tzh_ths_benchmark_copy1 表, 然后重命名为原表, 全部流程对应下面选中的内容, 核心在 Table_map 和 Write_rows 两个事件, 加上前面创建表的步骤, 即可还原数据, 最终确定本次恢复数据的 binlog 起始点和结束点分别为 361653031 和 361656701。binlog 日志以事件为单位写入, 以 at 作为日志的开始, 两个 at 之间的内容就是一个完整的事件。
2023-12-12 18:21:51 1279
原创 JDK 9 模块化系统 (Java Platform Module System) 和 多版本兼容 Jar (Multi-Release Jar)
基本上,您有一个标准的JAR文件,像往常一样,在根目录中包含应用程序中的所有类,在META-INF中还有一个额外的 “versions” 文件夹,其中包含每个额外支持的Java版本的特定实现(在本例中,只有Java 9)。, 那么这个 Jar 就是一个多版本兼容 Jar 了, 在不同的 Java 环境下, 会自动选择合适版本的类. 这里有一个隐藏规范, 就是多个版本的类的 API 需要完全一致, 这个不是必须, 但是建议一致, 不然在使用中可能会出问题。从Java 9开始,还有一种选择。
2023-12-06 15:25:55 2357
原创 Files.list 未使用 try-with-resources 处理导致触发 Linux 系统 Open Files 上限, 进而导致 Java 程序报 打开的文件过多
重启 Java 进程后, 查看打开的文件数是 350 左右, 可正常上传文件, 但是随着上传文件接口的调用, 打开的文件数在不停上涨, 且对应的文件目录一直处于打开状态, 不能及时释放, 怀疑是流之类的没有及时关闭, 导致资源没有释放。, 同样需要 close, 在加了 try-with-resources 处理后, 重启 Java 进程, 发现打开的文件数不再上涨, 维持在 350 左右, 且打开的文件列表里的目录类型也会很快被释放, 问题解决。发现 Java 进程打开了 4000+ 文件, 通过。
2023-11-29 11:13:27 458
原创 Spring 循环依赖
循环依赖只存在于 Spring 中, 是因为 Spring 创建 Bean 的流程中, 依赖注入的时候, 会去再次创建依赖的 Bean, 导致了存在循环依赖的问题。
2023-11-09 16:33:28 246
原创 Linux Systemd 配置开机自启
据说, 通过二进制方式安装的程序才需要手动创建 Systemd 服务单元文件, 如 xxxx.service, 通过 yum 等安装的程序会自带该文件且会自动放到合适的位置, 可以直接执行 systemctl enable xxxx.service 来启用。Systemd 的设计目标是提供更快的启动速度、更好的资源管理和更强大的系统监控功能。ExecStart:指定要在启动时运行的命令或程序的完整路径。需要创建一个 Systemd 服务单元文件,并在其中指定要在启动时运行的命令或程序。
2023-09-21 11:43:39 725
原创 VMWare Workstation 17 Pro 网络设置 桥接模式 网络地址转换(NAT)模式 仅主机模式
这样看来桥接模式不符合第四点, 仅主机模式模式不符合第三点, 只有NAT模式符合要求。作为一名 Java 从业者, 通常需要主机与虚拟机具有如下的网络特点。CentOS Stream 9 之前的配置大致是这个样子。CentOS Stream 9 的配置大致是这个样子。下面的测试均以 CentOS Stream 9 为例。
2023-08-19 17:35:17 5611
原创 Windows 11 下使用 VMWare Workstation 17 Pro 新建 CentOS Stream 9 64位 虚拟机 并配置网络
然后是 EOL 问题, 过了 EOL 的 CentOS, 不仅仅是系统停止更新, 对 Linux 系统一知半解的用户使用起来可能也会变得非常麻烦, 比如想要安装某个软件, 网上搜了一个命令 yum xxx, 结果运行就报错, 照着五花八门的教程配置了半天, 最终也没安装成功 …对于个人来说, CentOS Linux 和 CentOS Stream 使用起来没有什么明显区别, 而用惯了 CentOS 再使用 Ubuntu 等会不太习惯, 还是 CentOS 系列用起来比较顺。
2023-08-19 15:58:12 1693
原创 Linux 常用命令
分别对应文件的属主(owner),属组(group)和其他用户(other),通过这样的机制来限制哪些用户、哪些组可以对特定的文件进行什么样的操作。, 比如:加入test目录下有三个文件分别是 :aaa.txt bbb.txt ccc.txt,如果我们要打包test目录并指定压缩后的压缩包名称为test.tar.gz可以使用命令:tar -zcvf test.tar.gz aaa.txt bbb.txt ccc.txt 或:tar -zcvf test.tar.gz /test/
2023-06-29 15:43:14 473
原创 Docker - CentOS 下 Docker 的 下载 安装 配置 使用
这次是在 UCloud 云的 CentOS 8.3 上尝试安装 Docker, 但是因为 EOL 的原因, 出现了各种奇怪的问题, 网上的资料又是乱七八糟, 参差不齐的质量, 尝试多次全失败, 索性重装了和 CentOS 同源的 Rocky 9.1 操作系统, 这下舒服了, 所有问题全没了. 这里也推荐对 Linux 一知半解的小伙伴直接上 Rocky。执行结果如下, 本次安装的 Docker 版本为 24.0.2, 且配置了阿里云的镜像加速器。相比于配置镜像加速, 我更推荐。安装 Docker 引擎。
2023-06-27 18:05:14 942
原创 Docker - 新手向导
这次是在 UCloud 云的 CentOS 8.3 上尝试安装 Docker, 但是因为 EOL 的原因, 出现了各种奇怪的问题, 网上的资料又是乱七八糟, 参差不齐的质量, 尝试多次全失败, 索性重装了和 CentOS 同源的 Rocky 9.1 操作系统, 这下舒服了, 所有问题全没了. 这里也推荐对 Linux 一知半解的小伙伴直接上 Rocky。在上面的命令中,有一个名为 todo-mysql-data 的卷,它安装在 /var/lib/mysql 中,这是MySQL存储数据的地方。
2023-06-27 17:21:46 809 1
原创 Docker - 容器化运行 MySQL Redis Nginx 以及 SpringBoot 应用程序
容器化运行 SpringBoot 应用程序, 及其依赖的 Redis, MySQL 等中间件, 然后用 Nginx 配置服务代理, 隐藏后端真实请求路径. 各组件之间通过 Docker Network 完成通信交互
2023-06-21 09:19:59 1078
原创 Maven 基础
Maven 是一个项目管理工具,它在非常高的层次上规范了一套项目管理的标准流程,包括但不限于项目的创建、构建、测试、打包、分发、记录和部署等阶段,同时上述的每一个步骤都可以在一个定义良好的范围内拥有无限的变化。插件是为 Maven 提供目标的组件,一个插件可以有一个或多个目标,其中每个目标都代表该插件的一种能力,如编译插件 Compiler Plugin 有两个目标,分别是 compile 和 testCompile,分别用来编译主代码的源码和测试代码的源码。此外,构建阶段也可以绑定零个或多个目标。
2023-06-08 18:15:32 1033
XShell5强制更新辅助工具
2019-03-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人