- 博客(257)
- 资源 (9)
- 问答 (1)
- 收藏
- 关注
原创 Spring静态页面切Nginx
检查后端服务:确认它是否能正常返回有效的 HTTP 响应头。检查 Nginx 配置:确保正确设置了代理头和协议。查看日志:检查 Nginx 和后端服务的日志,看看是否有更多的错误信息。通过这些方法,你应该能够定位并解决问题。如果问题仍然存在,提供更多的配置和日志信息可能有助于进一步诊断。nginx.conf中的user指令指示 Nginx 使用的用户。使用可以查看正在运行的 Nginx 进程和它们的用户。
2025-08-16 10:35:12
1033
原创 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
1003
原创 npm安装下载慢问题
通过将 npm 的镜像源切换到国内的镜像(如淘宝镜像),您可以显著提升安装速度,避免因为长时间等待或“转圈”而影响开发效率。
2025-08-02 08:08:23
426
原创 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
705
原创 配置Mac/Linux终端启动执行脚本
如果系统是Linux,默认的终端脚本都是bash。因此需要在home目录下配置**如果系统是mac,默认的终端脚本都是zsh。因此需要在home目录下配置**这将显示当前shell进程的信息,包括使用的shell路径。这条命令会输出当前用户默认使用的shell路径,例如。配置终端启动执行脚本。
2025-07-25 21:53:17
266
原创 Homebrew安装
Homebrew 默认使用国外源,特别是 GitHub,这会影响国内用户的下载速度。您可以通过将 Homebrew 的源配置为国内镜像(如清华、中科大或阿里云)来提高安装速度。配置下载源后,后续的安装过程会更加顺畅且更快速。设置为 JDK 21验证 Java 和 Maven 版本确保 Maven 指向。使用卸载。清理环境并验证 Maven 和 JDK 是否正常工作。
2025-07-20 07:24:33
1036
原创 Java流式处理
在 Java 中,没有直接类似 Python 生成器的语法,但可以通过迭代器(Iterator)和流式处理(如使用或 Reactive Streams)来实现类似生成器的功能。此外,也可以通过和线程的组合实现异步文件解压流。
2025-06-29 09:25:27
635
原创 maven之scope
在 Maven 中,scope定义了依赖的可见性和生存周期,主要影响依赖在编译、测试和运行阶段的可用性,以及是否传递给下游模块。以下是 Maven 中常用的scope。
2025-06-20 22:05:48
665
原创 文件打包压缩Java实践
LZ系列(LZ77, LZ78, LZMA, LZ4):基于字典的压缩方法,适用于重复性较强的数据。霍夫曼编码:基于字符频率的变长编码,用于优化数据表示。DEFLATE:结合 LZ77 和霍夫曼编码,广泛用于 GZIP 和 ZIP 格式。BZIP2:使用 Burrows-Wheeler 变换和霍夫曼编码,适合需要高压缩比的应用。Zstd 和 Brotli:现代压缩算法,提供良好的压缩比与速度平衡,适合多线程和 Web 应用。
2025-06-14 08:36:01
642
原创 Unsafe.putOrderedInt与Volatile
是 Java类中的一个方法,它提供了一个底层的机制,允许程序直接修改内存中的指定位置(在 JVM 之外),而不经过标准的 Java 内存管理。具体来说,方法允许直接在指定的内存位置(或对象字段)写入一个int类型的值,同时保证写入顺序。
2025-05-30 21:49:24
1043
原创 Linux的读写屏障
在 Linux 中,(Read-Write Barriers,简称 RWB)是对内存访问顺序的一种控制机制,用来保证在多核处理器环境下,内存访问的正确顺序,避免因乱序执行导致的数据一致性问题。它是操作系统内核或硬件架构(如 x86, ARM 等)中实现内存顺序性的一种手段。
2025-05-24 22:16:47
1072
原创 cpu缓存一致性
用于缓存即将写回主内存的数据,缓解写延迟、支持乱序执行,并帮助缓存一致性协议协调处理器间的写操作。:用于管理缓存行的失效操作,记录需要失效的缓存行,确保其他处理器不会读取过时或不一致的数据。这两者通过配合工作,协同维护多核处理器系统中的缓存一致性,减少了不必要的内存访问、避免了数据竞争,提高了多核系统的整体性能和吞吐量。
2025-05-10 16:50:06
921
原创 Aws S3上传优化
Google 的 Brotli Java 绑定提供了和类,分别用于解压和压缩 Brotli 格式的文件。这个库比Brotli4j更活跃,且得到了 Google 官方的支持。通过调整压缩级别,你可以在压缩率和速度之间找到合适的平衡。
2025-05-02 18:04:30
1455
原创 计算机硬件吞吐量
常见的 CPU、磁盘(包括机械硬盘和固态硬盘)、内存的吞吐量范围差异较大,下面是基于当前技术水平的一个大致估计,实际吞吐量会根据硬件型号、配置和负载等因素有所不同。
2025-04-26 09:20:35
689
原创 java写文件优化(2)
Memory-Mapped Files (MMF) 是一种将文件的内容映射到进程的虚拟内存中的技术,允许进程像操作内存一样读取和写入文件。它通过操作系统的虚拟内存管理机制来实现,在使用内存映射文件时,JVM 的行为与传统的堆内存管理不同,具体的内存占用方式如下:Memory-Mapped Files 使用的是 堆外内存,即它们不直接占用 JVM 的堆内存空间。堆外内存不受 JVM 的垃圾回收管理,而是由操作系统的虚拟内存管理器来管理。通过 对象进行文件映射时,内存分配和回收由操作系统负责,而不是 JVM
2025-04-19 11:13:07
636
原创 java写文件优化(1)
增大缓冲区:可以尝试增大的缓冲区,以减少 I/O 次数。多线程异步写入:对于多个文件或大文件,使用线程池并行写入会提高效率。内存映射文件(Memory-mapped files):对于非常大的文件,内存映射文件的方式能显著提高性能。:对于小文件,是一个简单且高效的选择。去掉不必要的封装:如果没有计数需求,避免使用,只保留进行写入。选择合适的方案,依据你的实际数据规模和场景来优化文件写入性能。增大缓冲区大小。
2025-04-04 15:01:37
739
原创 域名配置服务端口
你遇到的错误很可能是因为你没有足够的权限绑定特权端口(如 80 端口)。以 root 用户或通过sudo运行 Java 应用程序;确保没有其他进程占用该端口;检查防火墙和安全组规则;如果使用 SELinux,检查并调整策略。如果你希望绑定到 80 端口,但不想以 root 身份运行 Java 应用,可以考虑使用端口转发工具,如iptables或authbind,将 80 端口的流量转发到高于 1024 的端口上。
2025-03-08 13:51:38
1071
原创 package-info.java的作用
是一个为包提供额外元数据的文件,主要用于文档说明、声明包级注解,以及统一管理包的整体信息。虽然不是必需的,但它是一个非常有用的工具,特别是在注释、文档生成和注解的使用场景中。
2025-02-28 20:46:35
649
原创 MySQL 事件调度器
确实是一个更方便且内置的解决方案,可以在 MySQL 服务器端自动定期执行表优化操作,无需依赖外部工具或应用程序代码。这种方式也能减少数据库维护的复杂性,尤其适用于在数据库频繁更新或删除时进行自动化优化。
2025-01-24 21:03:40
660
原创 Centos 8 交换空间管理
参数,可以控制系统何时使用交换空间。值越低,越倾向于使用物理内存而不是交换空间(默认通常为 60)。交换空间不够用,你可以通过扩展现有的交换文件或创建新的交换文件来增加交换空间。首先,选择文件路径和大小(例如,增加 1 GB 交换空间)。这会创建一个 1 GB 的文件(1024 个 1MB 块)。通过这些步骤,你可以灵活地扩展交换空间来满足应用的需求。完成后,你的系统应该有了更大的交换空间。命令检查是否已经成功扩展了交换空间。,可以创建另一个交换文件(例如。激活交换文件,使其立即生效。
2025-01-19 09:40:24
593
1
原创 CentOS 8 如何安装java与mysql
它影响数据库的可靠性、数据安全性以及性能,通常在高并发或对数据安全性有特殊要求的应用场景中需要进行调整。CentOS 8 默认仓库中并不包含 MySQL 8,因此需要通过 MySQL 官方的 YUM 仓库来安装。如果您的系统上安装了多个版本的 Java,您可以通过以下命令设置默认的 Java 版本。现在,您的 CentOS 8 系统上应该已经成功安装了 Java 和 MySQL。按照提示,您可以设置新的 root 密码,移除匿名用户,禁止远程登录等。根据提示选择您需要的版本。
2025-01-10 20:53:39
1166
1
原创 CentOS 8 上搭建SFTP服务
通过禁用密码认证和挑战响应认证,可以确保服务器只使用公钥认证,这会提高 SFTP 安全性并避免认证冲突。错误通常是因为 SSH 连接超时、网络问题或服务器端配置不当引起的。通过调整 SSH 客户端和服务器的超时设置、检查防火墙规则和权限设置,通常可以解决这个问题。如果问题仍然存在,查看日志可以帮助进一步诊断。错误通常是由于 SSH 对于chroot目录的权限要求不满足。你需要确保chroot目录的所有者是root,并且权限设置为 755,且子目录的权限适合用户操作。通过以上操作,应该可以解决问题。
2025-01-04 16:16:06
1818
2
原创 Spring boot对接安全证书
如果只是短期需要继续使用 CentOS 8,可以切换到 Vault 存储库。如果需要长期支持,建议迁移到 AlmaLinux 或 Rocky Linux,以获得社区支持和定期更新。
2025-01-01 13:07:46
1627
原创 kafka常用命令(持续更新)
使用这将列出所有 broker 的 ID,如输出[0, 1, 2]表示有 3 个 broker。如果你的 Kafka 集群不依赖 Zookeeper,可以使用或或者输出中每个 broker 的信息都会显示出来。
2024-12-21 18:30:03
825
原创 kafka-clients之监控
以生产者为例介绍spring如何整合kafka-clients,micrometer,prometheus。上报生产者监控打点可以通过在Spring Boot应用中手动添加Kafka Producer的度量监控,确保Prometheus能够采集到Producer的指标。以下是一个示例代码,其中使用了。
2024-12-13 20:20:12
735
原创 kafka-clients之CommonClientConfigs
是库中一个包含Kafka通用配置项的类,它定义了Kafka Producer、Consumer、Admin等客户端共享的配置。
2024-11-29 21:48:47
972
原创 kafka-clients之生产者发送流程
BufferPool通过clear()方法重置缓冲区,实现内存复用而非释放,从而提升了 Kafka 客户端的发送效率和内存利用率。这种方式在高并发、高吞吐的场景中尤其有优势,因为它能在性能和资源消耗之间取得良好的平衡。
2024-11-23 17:52:34
1145
原创 kafka-clients之max.block.ms
如果不加以控制,Kafka 生产者的阻塞行为(如在send()中阻塞)确实可能反压应用程序线程池,特别是像 Tomcat 这样的线程池可能会被打满,影响应用服务的可用性。为了解决这个问题,可以通过合理配置、使用异步消息发送、引入独立的线程池等方式来防止 Kafka 阻塞问题扩散到应用的关键线程池。即使你使用了异步的send()方法,Kafka 生产者仍然可能由于缓冲区已满或元数据不可用而发生阻塞。这种阻塞可以通过设置、调整和batch.size等方式来缓解。
2024-11-15 23:11:33
1280
1
原创 kafka-clients之ProducerConfig
在Kafka2.4.0版本中,类提供了许多配置参数,用于控制生产者行为。这些参数可以调整Kafka生产者的性能、可靠性和行为。
2024-11-09 09:43:32
1030
原创 kafka客户端消费者吞吐量优化
mq消息消费实时性要求不高,期望可以牺牲一部分实时性,换取吞吐量,例如:数据库单条insert优化为batchInsert。优化后结果不符合预期:消费者消费消息的batchSize远小于实际配置的max.poll.records,导致在批量消息达到时想要聚合mq批量操作业务数据效果与单条处理效果类似。的等待时间内,broker 至少有足够的时间来积累消息,最大限度地提高单次拉取的数据量。这个参数决定了消费者拉取消息时的行为,影响数据批量处理的效率和延迟。,尤其是在消息量较小的场景中。这种配置的好处是可以。
2024-11-02 11:37:13
1679
原创 kafka-clients之mq丢失问题
客户端版本为2.6.x,客户端机器可能在尝试连接 Kafka broker 时因为超时断开,导致无法成功接收或更新 metadata由于客户端没有及时感知到broker重新选举的metadata数据,一直尝试向宕机的broker发送mq,在2分钟后超时,最终失败导致部分mq消息丢失如何解决该问题场景?升级版本至2.7.0(含)之上。官方如何修复的该问题可配置的连接超时:引入了参数,允许客户端配置连接建立的超时时间。如果客户端在设定的时间内无法与 broker 建立连接,它将超时并进行失败处理。
2024-10-26 07:29:34
1352
1
原创 G1(Garbage First)垃圾回收实战
年轻代回收(Young GC):只回收新生代,暂停时间短。并发标记:标记老年代中的存活对象,尽量避免停顿。混合回收(Mixed GC):回收新生代和部分老年代对象,减少 Full GC 触发的频率。完全垃圾回收(Full GC):应急阶段,全堆回收,停顿时间长。通过这些阶段的配合,G1 能够平衡应用的吞吐量和暂停时间,适合大堆内存、低延迟要求的应用场景。这表示 G1 垃圾回收器在执行一次 Young GC(年轻代垃圾回收)。
2024-10-19 09:07:01
1284
3
原创 Java内存布局
64位 JVM 不启用指针压缩时:Object Header 大小是16字节。64位 JVM 启用指针压缩时(默认):Object Header 大小是12字节。32位 JVM:Object Header 大小是8字节。JVM在默认情况下启用指针压缩,但如果堆内存超过32GB,就会禁用指针压缩。32GB是压缩指针的最大寻址范围。超过32GB的堆内存中,压缩指针带来的性能提升并不显著,而且需要解压指针反而可能增加开销。
2024-10-01 09:29:45
1174
原创 Mysql主从不一致校验
依赖主从复制依赖于MySQL的复制机制,因此只能检测到复制层面的问题,而无法发现复制日志丢失或数据直接修改导致的不一致。数据一致性保证:工具可以通过设置等选项,确保只检测而不修改数据,也可以与结合使用来修复不一致的数据。通过这种方式,可以在不直接访问从库数据的情况下,有效地检测并报告主从数据不一致问题,为数据库管理员提供了强大的维护工具。
2024-09-27 21:12:38
965
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关注的人