- 博客(262)
- 资源 (9)
- 问答 (1)
- 收藏
- 关注
原创 布隆过滤器实战
布隆过滤器(Bloom Filter)是一种,用于高效地检测某个元素是否存在于集合中。它具有和的特点,但存在(即可能会误认为某个元素存在,但实际上不存在)。布隆过滤器由**位数组(Bit Array)0110"hello""hello"1"world""world"
2025-09-21 07:08:56
594
原创 HttpClient、OkHttp 和 WebClient
是 Java 生态中常见的 HTTP 客户端,它们在设计理念、异步能力、性能等方面有所不同。
2025-09-06 11:08:40
487
原创 Let‘s Encrypt证书自动续期
如果你希望避免手动干预,建议切换到支持自动续期的插件(如 HTTP 或 DNS 插件)。如果你仍然希望使用手动插件,则需要编写并配置认证钩子脚本。这些方式会让你轻松处理证书续期问题。按照以上步骤,你应该能在 CentOS 8 系统上成功安装certbot和 Nginx 插件,申请和续期 Let’s Encrypt 证书。删除不再需要的旧证书,保留有效证书。更新 Nginx 配置,确保使用正确的证书路径。测试自动续期功能,确保续期配置无误。
2025-08-30 17:04:01
714
原创 Centos 8 管理防火墙
你可以通过命令删除基于端口的转发规则,或者使用规则编号删除。删除完规则后,别忘了保存配置以确保修改在重启后生效。概念描述表 (Tables)主要有filternatmanglerawsecurity,分别处理不同类型的网络流量和规则。链 (Chains)每个表包含多个链,最常见的链有INPUTOUTPUTFORWARD,每个链包含过滤规则。默认链策略每个链有默认策略,常见的策略有ACCEPT(接受)和DROP(丢弃)。NAT 和过滤nat表处理地址转换,filter表处理数据包过滤。要唯一确定。
2025-08-22 20:40:52
1157
原创 Spring静态页面切Nginx
检查后端服务:确认它是否能正常返回有效的 HTTP 响应头。检查 Nginx 配置:确保正确设置了代理头和协议。查看日志:检查 Nginx 和后端服务的日志,看看是否有更多的错误信息。通过这些方法,你应该能够定位并解决问题。如果问题仍然存在,提供更多的配置和日志信息可能有助于进一步诊断。nginx.conf中的user指令指示 Nginx 使用的用户。使用可以查看正在运行的 Nginx 进程和它们的用户。
2025-08-16 10:35:12
1068
原创 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
1155
原创 npm安装下载慢问题
通过将 npm 的镜像源切换到国内的镜像(如淘宝镜像),您可以显著提升安装速度,避免因为长时间等待或“转圈”而影响开发效率。
2025-08-02 08:08:23
489
原创 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
735
原创 配置Mac/Linux终端启动执行脚本
如果系统是Linux,默认的终端脚本都是bash。因此需要在home目录下配置**如果系统是mac,默认的终端脚本都是zsh。因此需要在home目录下配置**这将显示当前shell进程的信息,包括使用的shell路径。这条命令会输出当前用户默认使用的shell路径,例如。配置终端启动执行脚本。
2025-07-25 21:53:17
282
原创 Homebrew安装
Homebrew 默认使用国外源,特别是 GitHub,这会影响国内用户的下载速度。您可以通过将 Homebrew 的源配置为国内镜像(如清华、中科大或阿里云)来提高安装速度。配置下载源后,后续的安装过程会更加顺畅且更快速。设置为 JDK 21验证 Java 和 Maven 版本确保 Maven 指向。使用卸载。清理环境并验证 Maven 和 JDK 是否正常工作。
2025-07-20 07:24:33
1289
原创 Java流式处理
在 Java 中,没有直接类似 Python 生成器的语法,但可以通过迭代器(Iterator)和流式处理(如使用或 Reactive Streams)来实现类似生成器的功能。此外,也可以通过和线程的组合实现异步文件解压流。
2025-06-29 09:25:27
655
原创 maven之scope
在 Maven 中,scope定义了依赖的可见性和生存周期,主要影响依赖在编译、测试和运行阶段的可用性,以及是否传递给下游模块。以下是 Maven 中常用的scope。
2025-06-20 22:05:48
793
原创 文件打包压缩Java实践
LZ系列(LZ77, LZ78, LZMA, LZ4):基于字典的压缩方法,适用于重复性较强的数据。霍夫曼编码:基于字符频率的变长编码,用于优化数据表示。DEFLATE:结合 LZ77 和霍夫曼编码,广泛用于 GZIP 和 ZIP 格式。BZIP2:使用 Burrows-Wheeler 变换和霍夫曼编码,适合需要高压缩比的应用。Zstd 和 Brotli:现代压缩算法,提供良好的压缩比与速度平衡,适合多线程和 Web 应用。
2025-06-14 08:36:01
676
原创 Unsafe.putOrderedInt与Volatile
是 Java类中的一个方法,它提供了一个底层的机制,允许程序直接修改内存中的指定位置(在 JVM 之外),而不经过标准的 Java 内存管理。具体来说,方法允许直接在指定的内存位置(或对象字段)写入一个int类型的值,同时保证写入顺序。
2025-05-30 21:49:24
1067
原创 Linux的读写屏障
在 Linux 中,(Read-Write Barriers,简称 RWB)是对内存访问顺序的一种控制机制,用来保证在多核处理器环境下,内存访问的正确顺序,避免因乱序执行导致的数据一致性问题。它是操作系统内核或硬件架构(如 x86, ARM 等)中实现内存顺序性的一种手段。
2025-05-24 22:16:47
1087
原创 cpu缓存一致性
用于缓存即将写回主内存的数据,缓解写延迟、支持乱序执行,并帮助缓存一致性协议协调处理器间的写操作。:用于管理缓存行的失效操作,记录需要失效的缓存行,确保其他处理器不会读取过时或不一致的数据。这两者通过配合工作,协同维护多核处理器系统中的缓存一致性,减少了不必要的内存访问、避免了数据竞争,提高了多核系统的整体性能和吞吐量。
2025-05-10 16:50:06
947
原创 Aws S3上传优化
Google 的 Brotli Java 绑定提供了和类,分别用于解压和压缩 Brotli 格式的文件。这个库比Brotli4j更活跃,且得到了 Google 官方的支持。通过调整压缩级别,你可以在压缩率和速度之间找到合适的平衡。
2025-05-02 18:04:30
1509
原创 计算机硬件吞吐量
常见的 CPU、磁盘(包括机械硬盘和固态硬盘)、内存的吞吐量范围差异较大,下面是基于当前技术水平的一个大致估计,实际吞吐量会根据硬件型号、配置和负载等因素有所不同。
2025-04-26 09:20:35
757
原创 java写文件优化(2)
Memory-Mapped Files (MMF) 是一种将文件的内容映射到进程的虚拟内存中的技术,允许进程像操作内存一样读取和写入文件。它通过操作系统的虚拟内存管理机制来实现,在使用内存映射文件时,JVM 的行为与传统的堆内存管理不同,具体的内存占用方式如下:Memory-Mapped Files 使用的是 堆外内存,即它们不直接占用 JVM 的堆内存空间。堆外内存不受 JVM 的垃圾回收管理,而是由操作系统的虚拟内存管理器来管理。通过 对象进行文件映射时,内存分配和回收由操作系统负责,而不是 JVM
2025-04-19 11:13:07
659
原创 java写文件优化(1)
增大缓冲区:可以尝试增大的缓冲区,以减少 I/O 次数。多线程异步写入:对于多个文件或大文件,使用线程池并行写入会提高效率。内存映射文件(Memory-mapped files):对于非常大的文件,内存映射文件的方式能显著提高性能。:对于小文件,是一个简单且高效的选择。去掉不必要的封装:如果没有计数需求,避免使用,只保留进行写入。选择合适的方案,依据你的实际数据规模和场景来优化文件写入性能。增大缓冲区大小。
2025-04-04 15:01:37
781
原创 域名配置服务端口
你遇到的错误很可能是因为你没有足够的权限绑定特权端口(如 80 端口)。以 root 用户或通过sudo运行 Java 应用程序;确保没有其他进程占用该端口;检查防火墙和安全组规则;如果使用 SELinux,检查并调整策略。如果你希望绑定到 80 端口,但不想以 root 身份运行 Java 应用,可以考虑使用端口转发工具,如iptables或authbind,将 80 端口的流量转发到高于 1024 的端口上。
2025-03-08 13:51:38
1118
原创 package-info.java的作用
是一个为包提供额外元数据的文件,主要用于文档说明、声明包级注解,以及统一管理包的整体信息。虽然不是必需的,但它是一个非常有用的工具,特别是在注释、文档生成和注解的使用场景中。
2025-02-28 20:46:35
682
原创 MySQL 事件调度器
确实是一个更方便且内置的解决方案,可以在 MySQL 服务器端自动定期执行表优化操作,无需依赖外部工具或应用程序代码。这种方式也能减少数据库维护的复杂性,尤其适用于在数据库频繁更新或删除时进行自动化优化。
2025-01-24 21:03:40
672
原创 Centos 8 交换空间管理
参数,可以控制系统何时使用交换空间。值越低,越倾向于使用物理内存而不是交换空间(默认通常为 60)。交换空间不够用,你可以通过扩展现有的交换文件或创建新的交换文件来增加交换空间。首先,选择文件路径和大小(例如,增加 1 GB 交换空间)。这会创建一个 1 GB 的文件(1024 个 1MB 块)。通过这些步骤,你可以灵活地扩展交换空间来满足应用的需求。完成后,你的系统应该有了更大的交换空间。命令检查是否已经成功扩展了交换空间。,可以创建另一个交换文件(例如。激活交换文件,使其立即生效。
2025-01-19 09:40:24
610
1
原创 CentOS 8 如何安装java与mysql
它影响数据库的可靠性、数据安全性以及性能,通常在高并发或对数据安全性有特殊要求的应用场景中需要进行调整。CentOS 8 默认仓库中并不包含 MySQL 8,因此需要通过 MySQL 官方的 YUM 仓库来安装。如果您的系统上安装了多个版本的 Java,您可以通过以下命令设置默认的 Java 版本。现在,您的 CentOS 8 系统上应该已经成功安装了 Java 和 MySQL。按照提示,您可以设置新的 root 密码,移除匿名用户,禁止远程登录等。根据提示选择您需要的版本。
2025-01-10 20:53:39
1188
1
原创 CentOS 8 上搭建SFTP服务
通过禁用密码认证和挑战响应认证,可以确保服务器只使用公钥认证,这会提高 SFTP 安全性并避免认证冲突。错误通常是因为 SSH 连接超时、网络问题或服务器端配置不当引起的。通过调整 SSH 客户端和服务器的超时设置、检查防火墙规则和权限设置,通常可以解决这个问题。如果问题仍然存在,查看日志可以帮助进一步诊断。错误通常是由于 SSH 对于chroot目录的权限要求不满足。你需要确保chroot目录的所有者是root,并且权限设置为 755,且子目录的权限适合用户操作。通过以上操作,应该可以解决问题。
2025-01-04 16:16:06
1862
2
原创 Spring boot对接安全证书
如果只是短期需要继续使用 CentOS 8,可以切换到 Vault 存储库。如果需要长期支持,建议迁移到 AlmaLinux 或 Rocky Linux,以获得社区支持和定期更新。
2025-01-01 13:07:46
1665
原创 kafka常用命令(持续更新)
使用这将列出所有 broker 的 ID,如输出[0, 1, 2]表示有 3 个 broker。如果你的 Kafka 集群不依赖 Zookeeper,可以使用或或者输出中每个 broker 的信息都会显示出来。
2024-12-21 18:30:03
907
原创 kafka-clients之监控
以生产者为例介绍spring如何整合kafka-clients,micrometer,prometheus。上报生产者监控打点可以通过在Spring Boot应用中手动添加Kafka Producer的度量监控,确保Prometheus能够采集到Producer的指标。以下是一个示例代码,其中使用了。
2024-12-13 20:20:12
761
原创 kafka-clients之CommonClientConfigs
是库中一个包含Kafka通用配置项的类,它定义了Kafka Producer、Consumer、Admin等客户端共享的配置。
2024-11-29 21:48:47
1000
原创 kafka-clients之生产者发送流程
BufferPool通过clear()方法重置缓冲区,实现内存复用而非释放,从而提升了 Kafka 客户端的发送效率和内存利用率。这种方式在高并发、高吞吐的场景中尤其有优势,因为它能在性能和资源消耗之间取得良好的平衡。
2024-11-23 17:52:34
1181
原创 kafka-clients之max.block.ms
如果不加以控制,Kafka 生产者的阻塞行为(如在send()中阻塞)确实可能反压应用程序线程池,特别是像 Tomcat 这样的线程池可能会被打满,影响应用服务的可用性。为了解决这个问题,可以通过合理配置、使用异步消息发送、引入独立的线程池等方式来防止 Kafka 阻塞问题扩散到应用的关键线程池。即使你使用了异步的send()方法,Kafka 生产者仍然可能由于缓冲区已满或元数据不可用而发生阻塞。这种阻塞可以通过设置、调整和batch.size等方式来缓解。
2024-11-15 23:11:33
1323
1
原创 kafka-clients之ProducerConfig
在Kafka2.4.0版本中,类提供了许多配置参数,用于控制生产者行为。这些参数可以调整Kafka生产者的性能、可靠性和行为。
2024-11-09 09:43:32
1051
Sybase PowerDesigner16.5破解文件
2017-08-18
jprofiler.linux.windws.64.bit.part1.破解版
2016-07-08
element-ui中的menu菜单改为动态v-for循环生成后选中状态失效问题
2019-11-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人