- 博客(66)
- 收藏
- 关注
原创 现代 CPU 的高性能架构与并发安全问题
现代 CPU 的设计(如多级缓存、指令重排)为了提升性能,引入了许多优化机制,但这些机制可能导致并发场景下的安全性问题。并发安全性主要体现在三个方面:原子性、有序性 和 可见性。这些问题在底层通过 CAS(Compare and Swap)和内存屏障(Memory Barrier)得以解决,高级语言如 Java 和 Go 则进一步封装底层机制,为开发者提供了更方便的工具。并发问题的本质来源于 CPU 的多级缓存和指令重排机制,操作系统通过 CAS 和内存屏障解决了原子性、有序性和可见性的问题。
2025-01-11 15:02:20
403
原创 如何使用 Mybatis-Plus 查询已经被逻辑删除的数据?
首先,我们需要自定义一个 Mybatis-Plus 的拦截器。通过实现接口,我们可以在 SQL 执行之前修改 SQL 语句。@Bean// 添加自定义的拦截器@Overridetry {// 如果 SQL 中包含 "/* no_logic_delete */" 标记// 使用 JSqlParser 解析 SQL// 如果 WHERE 子句存在,则替换逻辑删除条件= null) {
2024-11-19 17:21:34
962
1
原创 Nginx 配置了静态文件服务,访问时出现了权限拒绝错误
Nginx 访问静态文件时遇到权限拒绝错误,原因是目录权限限制了www-data用户的访问。检查文件和目录的权限,确认 Nginx 配置正确。修改父目录的权限,为www-data用户添加执行权限,允许进入该目录。验证www-data用户是否能够访问目标目录。重新加载 Nginx 配置并进行浏览器测试。通过给目录添加执行权限,解决了www-data用户无法访问上级目录的问题,确保 Nginx 可以正常服务静态文件。
2024-11-16 09:41:21
918
原创 数据结构大致分类
表、树、图和集合是数据结构的四大基石,每种结构都有特定的应用场景和优势。在实际应用中,选择合适的数据结构对算法的效率和程序的性能至关重要。
2024-11-13 09:50:22
884
原创 java高频面试题汇总
不可变类是指其对象一旦创建就不能被修改的类。Java 中的String类是一个典型的不可变类。所有字段使用final修饰。没有 setter 方法。返回对象的属性时返回深拷贝。多态是指同一个方法或对象在不同的上下文中表现出不同的行为。编译时多态(方法重载)。运行时多态(通过继承与接口实现,动态绑定)。内部类是在一个类的内部定义的类,分为成员内部类、局部内部类、匿名内部类和静态内部类。增加封装性。能够访问外部类的成员。实现接口时,可以通过匿名内部类快速实现。
2024-10-22 17:27:30
707
原创 常见的加密算法的分类及其原理
对称加密:使用同一个密钥进行加密和解密,速度快但密钥管理困难。非对称加密:使用一对密钥,安全性高但加解密速度慢。哈希算法:将任意长度的数据转换为固定长度的摘要,不可逆,用于数据完整性和密码存储。
2024-10-22 17:16:17
400
原创 手把手教你一步步实现响应式系统(类Vue)
Watcher数据劫持。依赖收集和派发更新。Watcher监听器实现。模板编译与自动更新。这个手写的响应式系统展示了 Vue 内部响应式机制的核心原理。// 编译模板并绑定数据 // 模拟数据更新 setTimeout(() => {// 会自动更新页面中的 {{ name }} 部分 } , 2000);// 编译模板并绑定数据 // 模拟数据更新 setTimeout(() => {// 会自动更新页面中的 {{ name }} 部分 } , 2000);
2024-09-14 15:49:07
816
原创 如何使用状态机较好的实现订单状态流转?
方式一(有状态状态机):适合处理复杂状态流转,功能强大,但实现较为复杂。方式二(无状态状态机):简单易用,适合处理简单状态流转,且天然线程安全。
2024-08-29 10:34:09
284
1
原创 部署流媒体服务器srs,并进行推拉流测试
通过以上步骤,您可以成功地使用不同协议(HTTP-FLV、HLS、WebRTC)进行推流和拉流。如果在执行过程中遇到问题,请提供详细的错误信息,我会进一步帮助您解决。上传到您的服务器或直接在本地打开,确保浏览器能够访问 SRS 服务器。上传到您的服务器或直接在本地打开,确保浏览器能够访问 SRS 服务器。上传到您的服务器或直接在本地打开,确保浏览器能够访问 SRS 服务器。确保您在服务器上已经有视频文件(例如。创建一个 HTML 文件,例如。创建一个 HTML 文件,例如。创建一个 HTML 文件,例如。
2024-07-17 15:17:33
1138
原创 使用 Let’s Encrypt 生成免费 SSL 证书
通过以上步骤,你可以使用 Let’s Encrypt 和 Certbot 为你的域名 www.hei.asia 生成和安装免费的 SSL/TLS 证书,并配置 Web 服务器来使用这些证书。定期更新证书也可以通过自动化任务来实现,确保你的站点始终保持安全。
2024-06-18 10:01:49
1283
原创 Redis Cluster 集群搭建
依此类推,为每个实例创建配置文件,并修改相应的端口号和目录。此命令会输出所有节点的状态及其角色。在运行该命令后,会有提示确认,输入。
2024-05-17 11:55:15
447
原创 homebrew安装位置
当你使用 Homebrew 安装软件时,软件通常会被安装到 Homebrew 的默认目录下,这个目录通常是。在 Linux 上,如果使用的是默认的安装路径,Homebrew 安装的软件将被放置在。此外,Homebrew 还会在安装软件时生成一个包含元数据的目录,通常在上述位置的。具体来说,在 macOS 上,Homebrew 安装的软件将被放置在。这个目录包含关于已安装软件的信息,如版本号、依赖关系等。这将显示有关特定软件包的信息,包括安装路径。目录中,同时相关的链接将被放置在。目录中,而链接则会放置在。
2024-03-17 16:30:00
3139
原创 通用的springboot web jar包执行脚本,释放端口并执行jar包
【代码】通用的springboot web jar包执行脚本,释放端口并执行jar包。
2024-03-16 20:51:07
558
1
原创 suseSSL=false&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&
useSSL=false&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
2024-03-07 14:05:47
451
原创 Springboot 的几种配置文件形式
三种方式都可以实现多环境的配置。在application.yml主配置文件中做项目通用的配置,在其他配置文件中做不同环境下的配置,以避免重复配置的情况。
2024-03-06 09:35:23
605
原创 简单使用Crontab定时执行
Crontab 是一个 UNIX 系统中的实用程序,用于在特定时间安排命令的执行。它通常在 Linux 和类 Unix 操作系统中使用。“crontab” 这个名字代表着 “cron 表”,因为它使用 cron 守护进程根据预定义的时间表执行任务。:Cron 守护进程是在类 Unix 操作系统中运行的后台进程。它负责在特定时间执行预定的命令。:用户可以使用 crontab 命令行实用程序创建、修改和删除预定任务。系统中的每个用户都可以有自己的 crontab 文件。星号 (*) 表示字段内的所有可能值。
2024-03-05 13:41:53
640
原创 解决MySQL8及以上版本的行内密码安全问题
该操作会在用户家目录下生成一个隐藏文件".mylogin.cnf",里面记录了MYSQL的密文的密码,只要配置了以后,我们也是直接使用命令登录,再也无需输入账号密码了,如果你想取消,删除此文件即可。由于告警信息是标准错误,我们可以将标准错误的输出信息输出为空。2、直接使用命令登录,再也无需输入账号密码。2、直接使用命令登录,再也无需输入账号密码。1、直接使用命令登录,屏蔽错误信息。1、自动配置MYSQL密文密码。1、将密码写入到主配置文件中。
2024-03-05 13:36:00
415
原创 SSH 的两种认证方式
除了密码认证和密钥认证之外,还有其他一些认证方式,如使用单一登录(SSO)系统、使用基于硬件的令牌、使用多因素认证等。这些认证方式通常用于增强安全性,但不如密码认证和密钥认证那样常见和广泛使用。SSH(Secure Shell)提供了几种不同的认证方式,其中两种最常见的方式是密码认证和密钥认证。
2024-03-01 14:18:07
1936
原创 Docker 中的挂载机制
Docker 的挂载机制允许将宿主机的文件或目录挂载到 Docker 容器内部,这样容器就可以访问宿主机上的文件系统。:通过绑定挂载,你可以将宿主机上的文件或目录直接挂载到容器中。这种方式允许容器和宿主机之间实现文件共享,而且容器外部对文件的改动也会立即反映到容器内部。:Docker 卷是一个可供容器使用的特殊目录,它绕过了联合文件系统,因此对其的 I/O 操作效率更高。卷挂载允许你在容器之间共享和重用数据,并且它们的生命周期可以独立于容器。
2024-03-01 13:19:28
784
原创 类 Unix 系统的文件目录结构
这些目录及其结构在 Unix-like 系统中是非常常见的,每个目录都有其特定的用途,能够帮助用户和系统管理员更好地组织和管理系统文件和数据。
2024-02-29 14:39:00
850
原创 一般的日志框架定义的几种日志级别
在实际使用中,诸如Log4j、Logback等日志框架允许用户根据需求设置日志级别,以便在不同的应用场景下控制日志的详细程度和输出规模。
2024-02-27 15:10:41
952
原创 不同操作系统在文本文件中使用的换行符
因此,在跨平台处理文本数据时,尤其是编写跨平台的代码或工具时,需要考虑到这些换行符的差异,并进行适当的转换。例如,在Java中可以使用。来获取当前运行系统的换行符;而在读写文本文件时,可以利用相应的库函数自动处理换行符兼容问题。
2024-02-27 11:28:36
1063
原创 Spring Boot 参数校验机制原理以及如何实现一个自定义校验注解
创建注解类:首先,创建一个注解类,用于定义你的自定义校验注解的名称和属性。编写校验逻辑:编写一个校验器,用于实际执行校验逻辑。关联注解和校验器:将自定义的注解与校验器关联起来,以便在使用注解时触发校验器。@Target({
2024-02-23 08:59:23
1295
原创 实现自定义注解的接口匿名访问
对于每个找到的匿名访问注解,将该处理器方法对应的请求路径进行处理,将路径中的占位符(如{id})替换为通配符(*),然后添加到urls列表中。上述代码片段表示/api/users/** 和 /api/users/{id} 这两个路径都将允许匿名访问。Bean,它包含了所有带有@RequestMapping注解的处理器方法及其映射路径。这样,开发者可以通过在Controller类或Controller方法上标注。注解,轻松地控制哪些URL可以被匿名用户访问。遍历这些处理器方法,查找类或方法上边标注了。
2024-02-21 11:03:44
548
原创 修改Springboot默认序列化工具Jackson的配置
当Spring容器中存在多个同类型的Bean时,默认情况下最后一个创建的Bean将作为首选Bean(如果未明确指定。实例,包括那些由Spring Boot自动配置创建的实例。的地方,包括HTTP请求和响应的JSON转换等场景,都会使用到这个自定义配置的。通过实现这个接口并注册一个定制器Bean,你可以对默认的。Bean,并将其注册到了Spring容器中。,而非Spring Boot默认提供的那个。的一些配置,而不是完全替换掉它,使用。的地方,都会采用你自定义的配置。这样,你的配置将应用于所有的。
2024-02-21 10:32:31
989
原创 Springboot Jackson 序列化与反序列化配置
可解决在使用默认反序列化Jackson时,LocalDateTime类型的请求参数反序列化失败的问题。
2024-01-11 15:31:04
611
BPMN 2.0 规范 - Business Process Model and Notation (BPMN)
2023-12-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人