自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(270)
  • 资源 (9)
  • 问答 (1)
  • 收藏
  • 关注

原创 kafka高吞吐持久化方案(1)

/ equals 和 hashCode 用于 map 去重@Overrideif (cmp!// equals(), hashCode(), constructor 省略这种方式使用WorkPool并发消费,但自己在每个消费者内部管理,对于同一个 key,必须队列顺序处理,不如方式一清晰可靠。我们不为每个 key 分配一个(太耗内存),而是用固定数量的 ReentrantLock 数组,根据uid+cidhash 映射到某一个锁。// 根据并发量设置i++) {特性。

2025-12-07 11:23:43 731

原创 银行家舍入法(RoundingMode.HALF_EVEN)

手续费费率本身:建议使用来避免偏差手续费金额(实际值):先用HALF_EVEN计算,最终展示再HALF_UP保留 2 位(元)

2025-12-07 11:13:58 263

原创 如何在 Java 中避开夏令时坑点

夏令时(DST)是一种人为调整时间的制度,目的是更充分地利用夏季较长的日照时间。每年夏天把时间往前拨一小时,秋天再拨回来。凌晨2点 → 调快到3点凌晨2点 → 调回到1点这种制度常用于欧美地区,亚洲大部分国家(包括中国、日本、韩国等)不使用夏令时。夏令时虽然看似只是“时间调快/调慢一小时”,但它带来的开发陷阱极多,特别是在跨国、电商、调度、日志分析等领域,稍不留意就可能导致生产事故。存储使用 UTC(Instant)展示使用带时区的 ZonedDateTime永远不要用表示跨时区的绝对时间问题。

2025-11-22 13:33:54 890

原创 arthas排查常用命令(持续更新)

【代码】arthas排查常用命令(持续更新)

2025-11-22 13:31:18 210

原创 Redis RDB 持久化机制深入理解:Copy-On-Write 与数据一致性保障

问题回答RDB 保存的是哪个时间点的数据?fork 子进程那一刻(如 11:00)RDB 执行过程中更新数据会污染快照吗?❌ 不会,更新的数据页主进程会 COW,子进程仍持有旧页主进程会合并或清理 COW 数据?❌ 不会,是操作系统自动释放子进程的旧页fork 会增加内存使用吗?✅ 是的,写多了会触发大量 COW,峰值会高于平时内存,需关注。

2025-11-01 14:12:44 658

原创 kafka与zero-copy

零拷贝(Zero Copy)数据在内核空间和用户空间之间传输时,尽量避免不必要的拷贝操作,从而提高性能、降低 CPU 占用。它并不是真的“0 次拷贝”,而是相比传统方式减少了数据复制次数。技术是否用户态拷贝是否完全零拷贝适用场景✅ 有❌ 否通用逻辑,处理灵活sendfile❌ 无✅ 是文件下载、静态资源❓ 视实现而定❌ 否(半零拷贝)高效读取但可读写处理splice❌ 无✅ 是pipe 传输/中继场景是的,你说得对 ——

2025-10-17 22:43:49 871

原创 IO模型select与poll,epoll

*epoll**:通过边缘触发(ET)模式有效避免惊群效应。水平触发(LT)模式下,可能会遇到惊群效应。**kqueue**:同样通过边缘触发(ET)模式来避免惊群效应。水平触发(LT)模式下,也可能会出现惊群效应。因此,边缘触发(ET)模式是防止惊群效应的关键,无论是epoll还是kqueue,启用边缘触发模式都能有效减少或避免惊群效应。

2025-10-03 17:32:13 1064

原创 Http与WebSocket

WebSocket 和 HTTP 都是基于的协议,但它们的设计目标和工作方式有很大区别。✅✅。

2025-09-26 20:52:08 1228

原创 布隆过滤器实战

布隆过滤器(Bloom Filter)是一种,用于高效地检测某个元素是否存在于集合中。它具有和的特点,但存在(即可能会误认为某个元素存在,但实际上不存在)。布隆过滤器由**位数组(Bit Array)0110"hello""hello"1"world""world"

2025-09-21 07:08:56 725

原创 连续hash函数

需求:需要一个的哈希函数。如果。

2025-09-12 20:54:50 949

原创 HttpClient、OkHttp 和 WebClient

是 Java 生态中常见的 HTTP 客户端,它们在设计理念、异步能力、性能等方面有所不同。

2025-09-06 11:08:40 756

原创 Let‘s Encrypt证书自动续期

如果你希望避免手动干预,建议切换到支持自动续期的插件(如 HTTP 或 DNS 插件)。如果你仍然希望使用手动插件,则需要编写并配置认证钩子脚本。这些方式会让你轻松处理证书续期问题。按照以上步骤,你应该能在 CentOS 8 系统上成功安装certbot和 Nginx 插件,申请和续期 Let’s Encrypt 证书。删除不再需要的旧证书,保留有效证书。更新 Nginx 配置,确保使用正确的证书路径。测试自动续期功能,确保续期配置无误。

2025-08-30 17:04:01 1263

原创 Centos 8 管理防火墙

你可以通过命令删除基于端口的转发规则,或者使用规则编号删除。删除完规则后,别忘了保存配置以确保修改在重启后生效。概念描述表 (Tables)主要有filternatmanglerawsecurity,分别处理不同类型的网络流量和规则。链 (Chains)每个表包含多个链,最常见的链有INPUTOUTPUTFORWARD,每个链包含过滤规则。默认链策略每个链有默认策略,常见的策略有ACCEPT(接受)和DROP(丢弃)。NAT 和过滤nat表处理地址转换,filter表处理数据包过滤。要唯一确定。

2025-08-22 20:40:52 1550

原创 Spring静态页面切Nginx

检查后端服务:确认它是否能正常返回有效的 HTTP 响应头。检查 Nginx 配置:确保正确设置了代理头和协议。查看日志:检查 Nginx 和后端服务的日志,看看是否有更多的错误信息。通过这些方法,你应该能够定位并解决问题。如果问题仍然存在,提供更多的配置和日志信息可能有助于进一步诊断。nginx.conf中的user指令指示 Nginx 使用的用户。使用可以查看正在运行的 Nginx 进程和它们的用户。

2025-08-16 10:35:12 1152

原创 mac安装node.js

您可以通过两种方式安装 Node.js:使用官方安装包或Homebrew。使用官方安装包访问 Node.js 官网,下载适合您操作系统的安装包(macOS)。按照安装向导完成安装。使用 Homebrew安装完成后,您可以通过配置 npm 的全局安装目录来避免权限问题。创建一个新的全局安装目录):配置 npm 使用新的目录更新环境变量:确保新的全局安装路径在$PATH中。打开您的 shell 配置文件并编辑:nano ~/.bash_profile # 或者 nano ~/.zshrc保存并退出。

2025-08-09 16:05:34 1778

原创 本地环境vue与springboot联调

【代码】本地环境vue与springboot联调。

2025-08-03 13:11:51 435

原创 npm安装下载慢问题

通过将 npm 的镜像源切换到国内的镜像(如淘宝镜像),您可以显著提升安装速度,避免因为长时间等待或“转圈”而影响开发效率。

2025-08-02 08:08:23 605

原创 vue项目入门

在VS Code中开发 Vue.js 项目时,保持清晰的文件夹结构非常重要。推荐使用和src/views来分离组件和页面,来管理 API 请求,src/router来管理页面路由。使用 Vue CLI 创建项目并启动开发服务器。在开发过程中,可以使用VS Code的插件来提高效率,比如Vetur(Vue.js 语法支持),ESLint(代码质量检查)等。定期使用来启动和查看项目进展。这样,你就可以快速构建一个具有 CRUD 功能的 Vue.js 项目,并在VS Code中高效开发。使用。

2025-07-25 21:54:34 881

原创 配置Mac/Linux终端启动执行脚本

如果系统是Linux,默认的终端脚本都是bash。因此需要在home目录下配置**如果系统是mac,默认的终端脚本都是zsh。因此需要在home目录下配置**这将显示当前shell进程的信息,包括使用的shell路径。这条命令会输出当前用户默认使用的shell路径,例如。配置终端启动执行脚本。

2025-07-25 21:53:17 327

原创 Homebrew安装

Homebrew 默认使用国外源,特别是 GitHub,这会影响国内用户的下载速度。您可以通过将 Homebrew 的源配置为国内镜像(如清华、中科大或阿里云)来提高安装速度。配置下载源后,后续的安装过程会更加顺畅且更快速。设置为 JDK 21验证 Java 和 Maven 版本确保 Maven 指向。使用卸载。清理环境并验证 Maven 和 JDK 是否正常工作。

2025-07-20 07:24:33 2102

原创 阿里云服务器安装JDK21

国内推荐:清华大学开源镜像站。

2025-07-12 07:40:22 632

原创 Tomcat/Jetty/Undertow对比

Spring Boot 支持多种嵌入式 Web 容器,其中和是最流行的三种选择。

2025-07-05 08:07:27 879

原创 Java流式处理

在 Java 中,没有直接类似 Python 生成器的语法,但可以通过迭代器(Iterator)和流式处理(如使用或 Reactive Streams)来实现类似生成器的功能。此外,也可以通过和线程的组合实现异步文件解压流。

2025-06-29 09:25:27 720

原创 maven之scope

在 Maven 中,scope定义了依赖的可见性和生存周期,主要影响依赖在编译、测试和运行阶段的可用性,以及是否传递给下游模块。以下是 Maven 中常用的scope。

2025-06-20 22:05:48 926

原创 文件打包压缩Java实践

LZ系列(LZ77, LZ78, LZMA, LZ4):基于字典的压缩方法,适用于重复性较强的数据。霍夫曼编码:基于字符频率的变长编码,用于优化数据表示。DEFLATE:结合 LZ77 和霍夫曼编码,广泛用于 GZIP 和 ZIP 格式。BZIP2:使用 Burrows-Wheeler 变换和霍夫曼编码,适合需要高压缩比的应用。Zstd 和 Brotli:现代压缩算法,提供良好的压缩比与速度平衡,适合多线程和 Web 应用。

2025-06-14 08:36:01 759

原创 Unsafe.putOrderedInt与Volatile

是 Java类中的一个方法,它提供了一个底层的机制,允许程序直接修改内存中的指定位置(在 JVM 之外),而不经过标准的 Java 内存管理。具体来说,方法允许直接在指定的内存位置(或对象字段)写入一个int类型的值,同时保证写入顺序。

2025-05-30 21:49:24 1095

原创 Linux的读写屏障

在 Linux 中,(Read-Write Barriers,简称 RWB)是对内存访问顺序的一种控制机制,用来保证在多核处理器环境下,内存访问的正确顺序,避免因乱序执行导致的数据一致性问题。它是操作系统内核或硬件架构(如 x86, ARM 等)中实现内存顺序性的一种手段。

2025-05-24 22:16:47 1124

原创 cpu缓存一致性

用于缓存即将写回主内存的数据,缓解写延迟、支持乱序执行,并帮助缓存一致性协议协调处理器间的写操作。:用于管理缓存行的失效操作,记录需要失效的缓存行,确保其他处理器不会读取过时或不一致的数据。这两者通过配合工作,协同维护多核处理器系统中的缓存一致性,减少了不必要的内存访问、避免了数据竞争,提高了多核系统的整体性能和吞吐量。

2025-05-10 16:50:06 1026

原创 Aws S3上传优化

Google 的 Brotli Java 绑定提供了和类,分别用于解压和压缩 Brotli 格式的文件。这个库比Brotli4j更活跃,且得到了 Google 官方的支持。通过调整压缩级别,你可以在压缩率和速度之间找到合适的平衡。

2025-05-02 18:04:30 1616

原创 计算机硬件吞吐量

常见的 CPU、磁盘(包括机械硬盘和固态硬盘)、内存的吞吐量范围差异较大,下面是基于当前技术水平的一个大致估计,实际吞吐量会根据硬件型号、配置和负载等因素有所不同。

2025-04-26 09:20:35 879

原创 java写文件优化(2)

Memory-Mapped Files (MMF) 是一种将文件的内容映射到进程的虚拟内存中的技术,允许进程像操作内存一样读取和写入文件。它通过操作系统的虚拟内存管理机制来实现,在使用内存映射文件时,JVM 的行为与传统的堆内存管理不同,具体的内存占用方式如下:Memory-Mapped Files 使用的是 堆外内存,即它们不直接占用 JVM 的堆内存空间。堆外内存不受 JVM 的垃圾回收管理,而是由操作系统的虚拟内存管理器来管理。通过 对象进行文件映射时,内存分配和回收由操作系统负责,而不是 JVM

2025-04-19 11:13:07 715

原创 java写文件优化(1)

增大缓冲区:可以尝试增大的缓冲区,以减少 I/O 次数。多线程异步写入:对于多个文件或大文件,使用线程池并行写入会提高效率。内存映射文件(Memory-mapped files):对于非常大的文件,内存映射文件的方式能显著提高性能。:对于小文件,是一个简单且高效的选择。去掉不必要的封装:如果没有计数需求,避免使用,只保留进行写入。选择合适的方案,依据你的实际数据规模和场景来优化文件写入性能。增大缓冲区大小。

2025-04-04 15:01:37 849

原创 正向代理与反向代理

是客户端的代理,帮助客户端访问外部资源,隐藏客户端的真实 IP。

2025-03-22 22:08:43 702

原创 域名配置服务端口

你遇到的错误很可能是因为你没有足够的权限绑定特权端口(如 80 端口)。以 root 用户或通过sudo运行 Java 应用程序;确保没有其他进程占用该端口;检查防火墙和安全组规则;如果使用 SELinux,检查并调整策略。如果你希望绑定到 80 端口,但不想以 root 身份运行 Java 应用,可以考虑使用端口转发工具,如iptables或authbind,将 80 端口的流量转发到高于 1024 的端口上。

2025-03-08 13:51:38 1255

原创 package-info.java的作用

是一个为包提供额外元数据的文件,主要用于文档说明、声明包级注解,以及统一管理包的整体信息。虽然不是必需的,但它是一个非常有用的工具,特别是在注释、文档生成和注解的使用场景中。

2025-02-28 20:46:35 792

原创 排查定位jar包大文件

这会列出 JAR 包中最大的文件或目录,方便你定位大文件。

2025-02-01 08:30:22 1076

原创 MySQL 事件调度器

确实是一个更方便且内置的解决方案,可以在 MySQL 服务器端自动定期执行表优化操作,无需依赖外部工具或应用程序代码。这种方式也能减少数据库维护的复杂性,尤其适用于在数据库频繁更新或删除时进行自动化优化。

2025-01-24 21:03:40 722

原创 Centos 8 交换空间管理

参数,可以控制系统何时使用交换空间。值越低,越倾向于使用物理内存而不是交换空间(默认通常为 60)。交换空间不够用,你可以通过扩展现有的交换文件或创建新的交换文件来增加交换空间。首先,选择文件路径和大小(例如,增加 1 GB 交换空间)。这会创建一个 1 GB 的文件(1024 个 1MB 块)。通过这些步骤,你可以灵活地扩展交换空间来满足应用的需求。完成后,你的系统应该有了更大的交换空间。命令检查是否已经成功扩展了交换空间。,可以创建另一个交换文件(例如。激活交换文件,使其立即生效。

2025-01-19 09:40:24 627

原创 CentOS 8 如何安装java与mysql

它影响数据库的可靠性、数据安全性以及性能,通常在高并发或对数据安全性有特殊要求的应用场景中需要进行调整。CentOS 8 默认仓库中并不包含 MySQL 8,因此需要通过 MySQL 官方的 YUM 仓库来安装。如果您的系统上安装了多个版本的 Java,您可以通过以下命令设置默认的 Java 版本。现在,您的 CentOS 8 系统上应该已经成功安装了 Java 和 MySQL。按照提示,您可以设置新的 root 密码,移除匿名用户,禁止远程登录等。根据提示选择您需要的版本。

2025-01-10 20:53:39 1250

原创 CentOS 8 上搭建SFTP服务

通过禁用密码认证和挑战响应认证,可以确保服务器只使用公钥认证,这会提高 SFTP 安全性并避免认证冲突。错误通常是因为 SSH 连接超时、网络问题或服务器端配置不当引起的。通过调整 SSH 客户端和服务器的超时设置、检查防火墙规则和权限设置,通常可以解决这个问题。如果问题仍然存在,查看日志可以帮助进一步诊断。错误通常是由于 SSH 对于chroot目录的权限要求不满足。你需要确保chroot目录的所有者是root,并且权限设置为 755,且子目录的权限适合用户操作。通过以上操作,应该可以解决问题。

2025-01-04 16:16:06 2013 1

Java_HotSpotTM虚拟机内存管理

Java HotSpotTM虚拟机内存管理 gc 垃圾回收 内存管理

2017-06-12

hsdis-amd64.dylib

打印Java字节码插件 mac版

2021-02-18

数据结构与算法分析Java语言描述

数据结构与算法分析Java语言描述,很棒的图书,由浅入深,经典之作

2018-06-05

DbVisualizer破解版

数据库链接工具,已破解,查看数据库元数据,导入导出数据等等,功能强大

2018-06-05

Sybase PowerDesigner16.5破解文件

相关的源文件下载: 官网:http://www.powerdesigner.de/ 国内:http://rj.baidu.com/soft/detail/16619.html?ald 上面的文件直接安装,之后下载该破解文件 放到安装目录的D:\Program Files (x86)\Sybase\PowerDesigner Viewer 16 文件夹下,进行文件覆盖就可以了(要选择自己安装目录) 亲自测试可用,与大家分享,希望对大家有用…………

2017-08-18

jprofiler.linux.windws.64.bit.part2.破解版

jprofiler.6.2.4,亲测,可用,第一部分为windows,第二部分为linux

2016-07-08

jprofiler.linux.windws.64.bit.part1.破解版

破解版,jprofiler.6.2.4,亲测,可用,第一部分为windows,第二部分为linux

2016-07-08

jprofiler.linux.windws.64.bit.part1

jprofiler.6.2.4,亲测,可用,第一部分为windows,第二部分为linux

2016-07-08

jprofiler.linux.windws.64.bit.part2

jprofiler.6.2.4,亲测,可用,第一部分为windows,第二部分为linux

2016-07-08

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除