自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 收藏
  • 关注

转载 操作系统中的任务调度算法

响应比=等待时间+预估执行时间预估执行时间响应比=预估执行时间等待时间+预估执行时间​。

2025-02-11 21:07:10 67

原创 从操作系统调度算法看Java并发上下文切换优化

在高并发Java应用中,频繁的线程上下文切换常常成为性能瓶颈。根据测试数据,单次上下文切换耗时通常在1-10微秒级别,当每秒切换次数超过10万次时,CPU将有超过30%的时间消耗在切换上。理解操作系统调度机制,对优化Java并发性能至关重要。通过理解CFS调度器的vruntime机制,我们可以更好地设计线程池参数,选择同步工具。通过红黑树选择vruntime最小的任务,保证公平性同时减少不必要的切换。Java线程采用1:1模型,直接对应内核线程。2. 线程池核心数超过CPU物理核心数。

2025-02-11 20:56:03 511

原创 5. Nginx 的安全与监控实践

在实际应用中,Nginx 的安全性和监控是非常重要的。本文将介绍如何增强 Nginx 的安全性,并通过监控工具实时掌握其运行状态。使用日志分析工具(如 ELK Stack)分析访问日志。# 安装 Prometheus。防止 SQL 注入和 XSS 攻击。# 安装 Grafana。启用 SSL/TLS 加密。5.3 日志分析与故障排查。5.2 监控与日志管理。

2025-02-06 09:02:02 276

原创 4. Nginx 的性能优化与调优

在高并发和大流量场景下,Nginx 的性能优化至关重要。本文将介绍如何对 Nginx 进行性能优化和调优,并分享一些实际应用中的经验和技巧。使用 Prometheus 和 Grafana 监控 Nginx 性能指标。启用高效的 IO 模型。4.3 监控与日志优化。启用 gzip 压缩。

2025-02-06 09:01:36 162

原创 3. Nginx 在实际项目中的应用实践

Nginx 在实际项目中有着广泛的应用场景。本文将通过一个实际案例,展示如何在项目中使用 Nginx 实现高性能 Web 服务、反向代理和负载均衡等功能。3.3 实现 SSL/TLS 加密通信。提供安全的 HTTPS 访问。防止数据传输中的窃听和篡改。3.2 实现反向代理与负载均衡。提供高可用性和容灾备份。3.1 搭建个人博客网站。分担后端服务的压力。

2025-02-06 09:01:09 159

原创 2. Nginx 在 Web 服务中的核心作用

本文将详细介绍 Nginx 在 Web 服务中的核心作用,并通过实际案例展示其应用场景。使用 epoll 和 kqueue 等高效 IO 多路复用技术。支持多种负载均衡算法(轮询、加权轮询、最少连接数等)。配置 WebSocket 握手头和代理设置。提供 WebSocket 协议支持。支持事件驱动的非阻塞 IO 模型。接收客户端请求并转发到后端服务器。支持 SSL/TLS 加密通信。提供安全的 HTTPS 访问。提供负载均衡和故障转移功能。提供高效的静态资源服务。支持高并发和大流量场景。

2025-02-06 08:59:46 136

原创 1. Nginx 入门指南:安装、配置与基本功能

Nginx 是一个高性能的 HTTP 和反向代理服务器,广泛应用于 Web 服务和 API 网关中。本文将从零开始,带领读者了解 Nginx 的基本概念、安装配置以及核心功能。Nginx 是一个开源的高性能 HTTP 服务器和反向代理服务器,支持高并发和大流量场景。网站配置文件路径:`/etc/nginx/sites-available/`主配置文件路径:`/etc/nginx/nginx.conf`1.2 Nginx 的安装与配置。1.1 Nginx 的基本概念。Nginx 的主要功能。

2025-02-06 08:59:27 482

原创 5. Nacos 在实际项目中的应用实践

假设我们正在开发一个电商平台,包含订单服务、支付服务和库存服务等多个微服务。我们需要使用 Nacos 来实现服务发现、配置管理和服务管理等功能。Nacos 在实际项目中有着广泛的应用场景。本文将通过一个实际案例,展示如何在项目中使用 Nacos 实现服务发现、配置管理和服务管理等功能。5.2 实现服务发现。5.3 实现配置管理。5.4 实现服务管理。

2025-02-04 11:30:27 243

原创 4. Nacos 的高可用性与集群搭建

在实际应用中,Nacos 的高可用性是非常重要的。本文将介绍如何搭建高可用性的 Nacos 集群,并分享一些实际应用中的经验和技巧。Nacos 集群是由多个 Nacos 节点组成的分布式系统,支持高可用性和负载均衡。访问 `http://localhost:8848/nacos`,查看集群状态。及时移除故障节点,并添加新节点以维持集群的高可用性。使用 Nacos 提供的监控工具定期检查集群状态。4.1 Nacos 集群的基本概念。4.2 Nacos 集群的搭建步骤。Nacos 集群的特点。

2025-02-04 11:27:51 366

原创 3. Nacos 与 Spring Cloud 的深度集成

Spring Cloud 是一个用于构建微服务架构的工具集,而 Nacos 是其中重要的组成部分之一。本文将详细介绍如何将 Nacos 与 Spring Cloud 深度集成,并通过实际案例展示其应用场景。3.1 引入 Nacos 依赖。3.2 配置 Nacos 属性。3.3 实现服务注册与发现。3.4 实现配置管理。

2025-02-04 11:24:58 262

原创 2. Nacos 在微服务架构中的核心作用

在微服务架构中,Nacos 发挥着至关重要的作用。本文将详细介绍 Nacos 在微服务架构中的核心作用,并通过实际案例展示其应用场景。帮助服务找到彼此的位置,实现服务间的通信。服务启动时从 Nacos 获取配置信息。配置信息存储在 Nacos 服务器中。Nacos 定期检查服务的健康状态。提供服务的健康检查和流量管理功能。服务注册中心记录所有服务的信息。实现服务间的动态发现和负载均衡。动态修改配置信息,无需重启服务。集中管理所有服务的配置信息。根据健康状态动态调整流量分配。实现服务的自动容错和负载均衡。

2025-02-04 11:21:30 172

原创 1. Nacos 入门指南:安装、配置与基本功能

Nacos 是阿里巴巴开源的一个动态服务发现、配置管理和服务管理平台,广泛应用于微服务架构中。本文将从零开始,带领读者了解 Nacos 的基本概念、安装配置以及核心功能。启动后访问 `http://localhost:8848/nacos`,默认用户名和密码均为 `nacos`。Nacos 是一个用于微服务架构的服务发现、配置管理和服务管理的平台。服务管理:提供服务的健康检查和流量管理功能。服务发现:帮助服务找到彼此的位置。配置管理:集中管理服务的配置信息。1.2 Nacos 的安装与配置。

2025-02-04 11:19:20 343

原创 Redis 集群搭建与管理实践

使用 `redis-cli --cluster del-node` 命令移除故障节点,并使用 `redis-cli --cluster add-node` 命令添加新节点。本文将介绍如何搭建和管理 Redis 集群,并分享一些实际应用中的经验和教训。Redis 集群是由多个 Redis 节点组成的分布式系统,支持水平扩展和高可用性。使用 `redis-cli --cluster check` 命令定期检查集群状态。redis-server --port 端口号。Redis 集群的特点。

2025-02-04 11:08:05 238

原创 Redis 性能优化与调优技巧

在实际应用中,Redis 的性能优化是非常重要的。本文将介绍一些常用的 Redis 性能优化技巧,并分享一些实际应用中的经验和教训。避免全表扫描:避免使用 `KEYS *` 等全表扫描命令,改用 `SCAN` 命令进行分页扫描。批量操作:使用 `MULTI` 和 `EXEC` 命令实现批量操作,减少网络往返次数。绑定 IP 地址:只绑定需要监听的 IP 地址,避免不必要的网络开销。优化网络带宽:使用压缩传输协议(如 gzip)减少网络传输开销。使用管道化:使用管道化技术批量发送命令,减少网络延迟。

2025-02-04 11:04:01 239

原创 Redis 在消息队列中的应用实践

Redis 不仅是一个优秀的缓存系统,还可以用来实现高效的消息队列。本文将介绍如何利用 Redis 实现消息队列,并分享一些实际应用中的经验和技巧。使用 `LPUSH` 和 `RPOP` 命令实现先进先出(FIFO)的消息队列。消息队列是一种异步通信机制,允许生产者和消费者之间通过队列进行消息传递。使用 `ZADD` 和 `ZRANGE` 命令实现优先级队列。丰富的数据结构:支持多种消息队列实现方式(如列表、有序集合等)。持久化:支持消息的持久化存储,防止消息丢失。6.3 常见的消息队列实现方式。

2025-02-04 11:02:43 174

原创 Redis 在缓存系统中的应用实践

本文将介绍如何利用 Redis 实现高效的缓存系统,并分享一些实际应用中的经验和技巧。LFU(Least Frequently Used):最不常使用的策略。LRU(Least Recently Used):最近最少使用的策略。丰富的数据结构:支持多种缓存策略(如互斥锁、分布式锁等)。缓存击穿:防止热点数据过期导致大量请求同时访问数据库。缓存是一种临时存储机制,用于加速数据的访问速度。持久化:支持数据的持久化存储,防止数据丢失。缓存雪崩:防止大量缓存同时过期导致系统崩溃。5.3 常见的缓存策略。

2025-02-04 11:00:16 170

原创 Redis 高可用性解决方案:主从复制与哨兵模式

本文将介绍 Redis 的主从复制和哨兵模式,帮助读者实现高可用性的 Redis 集群。sentinel monitor mymaster 主节点IP地址 主节点端口号 哨兵数量。哨兵节点监控主从节点的状态,并在主节点故障时自动选举新的主节点。slaveof 主节点IP地址 主节点端口号。主节点负责处理写操作,并将写操作同步到从节点。负载均衡:从节点可以处理读操作。bind 主节点IP地址。port 主节点端口号。port 从节点端口号。主节点故障时需要手动切换。配置多个哨兵节点以提高可靠性。

2025-02-04 10:57:13 157

原创 Redis 持久化机制:RDB 和 AOF 的优缺点与选择

本文将详细介绍 Redis 的两种持久化方式:RDB 和 AOF,并分析它们的优缺点及适用场景。save 900 1 # 每900秒(15分钟)至少有1次修改时保存快照。save 300 10 # 每300秒(5分钟)至少有10次修改时保存快照。在生产环境中,通常建议同时启用 RDB 和 AOF 模式,以兼顾性能和数据安全性。如果对数据一致性要求较高,建议使用 AOF 模式。数据丢失风险较高(仅保存快照时刻的数据)。定期将内存中的数据快照保存到磁盘。对数据一致性要求较高。

2025-02-04 10:54:07 293

原创 Redis 数据结构详解:字符串、列表、哈希、集合与有序集合

HMSET key field1 value1 field2 value2 # 批量设置哈希字段的值。HGETALL key # 获取哈希的所有字段和值。ZRANGE key start stop # 获取有序集合中的元素范围。LRANGE key start stop # 获取列表中的元素范围。HGET key field # 获取哈希字段的值。SMEMBERS key # 获取集合中的所有元素。

2025-02-04 10:50:20 274

原创 Redis 入门指南:安装、配置与基本操作

Redis 是一个高性能的键值存储系统,广泛应用于缓存、消息队列、实时分析等领域。本文将从零开始,带领读者了解 Redis 的基本概念、安装配置以及常用操作。Redis 是一个开源的、基于内存的数据结构存储系统,支持多种数据结构(如字符串、列表、哈希、集合、有序集合等),并提供了丰富的命令集。# 设置绑定的 IP 地址,默认为 127.0.0.1。主从复制:支持数据的高可用性和负载均衡。支持多种数据结构:满足不同场景的需求。1.2 Redis 的安装与配置。1.1 Redis 的基本概念。

2025-02-04 10:45:02 199

原创 Redis缓存机制详解

Redis(Remote Dictionary Server)是一个开源的、基于内存的数据结构存储系统,可以用作数据库、缓存和消息中间件。它支持多种数据类型,如字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)、有序集(Sorted Sets)等,并提供了丰富的操作命令来高效地管理这些数据。缓存是一种将数据临时存储起来以加快访问速度的技术。Redis作为缓存使用时,其主要目的是减少对后端数据库的压力并提高响应速度。

2025-02-04 10:21:18 390

原创 java内存模型及垃圾回收机制

Java内存模型(JMM)作为多线程编程的核心规范,明确定义了共享变量(包含对象字段与数组元素)的访问规则,以及线程间的数据交互机制。其核心目标是建立线程操作可见性、指令执行有序性的标准化模型,确保并发环境下的程序可预测性。Java内存模型通过happens-before规则与内存屏障技术,在编译器优化与硬件执行之间建立安全桥梁,为开发者提供可预测的并发编程模型。配合分代垃圾回收机制的多算法协同,实现从毫秒级到TB级内存的高效管理。

2025-02-04 10:00:41 780

原创 MYSQL大表优化

面对大数据量的挑战,采取综合性的优化措施至关重要。除了上述提到的技术手段外,还需持续监控系统性能,及时调整优化策略,确保数据库能够高效稳定地运行。通过合理的架构设计和优化策略,可以有效应对大表带来的性能瓶颈,保障系统的长期健康发展。例如,当当网的Sharding-JDBC和阿里的TDDL就是这种架构的实现。Mycat、360的Atlas以及网易的DDB都是这类架构的例子。确保所有的查询语句都带有适当的限制条件,以减少返回的数据量。例如,将一个包含大量字段的用户表拆分为两个或多个表,每个表只包含一部分字段。

2025-01-17 20:43:41 245

原创 并发事务带来的问题及解决方案

理解并发事务可能带来的各种问题是设计高效且可靠数据库应用的关键。通过选择合适的事务隔离级别以及合理利用锁机制或其他并发控制技术,可以有效地缓解这些问题,确保数据的一致性和完整性。此外,定期监控和优化数据库性能也是维护良好用户体验的重要组成部分。正确配置事务隔离级别不仅能保护数据免受并发问题的影响,还能在保证数据一致性的同时最大化系统吞吐量。

2025-01-17 20:40:23 354

原创 InnoDB与MyISAM的主要区别

如果您的应用需要高并发、事务支持及数据完整性保证,则InnoDB通常是更好的选择。对于那些主要以读为主、不需要事务支持且希望获得快速统计信息的应用来说,MyISAM可能更加合适。随着技术的发展,特别是MySQL版本的不断更新,InnoDB逐渐成为大多数现代应用的首选存储引擎,因为它提供了更全面的功能集和更好的扩展性。此外,考虑到未来可能的增长和变化,选择一个能够灵活应对不同需求的存储引擎尤为重要。无论选择哪种存储引擎,定期监控和优化数据库性能都是必不可少的工作。

2025-01-17 20:23:06 354

原创 Spring框架中的设计模式详解

此外,Spring还使用了其他设计模式,如建造者模式(Builder Pattern)、享元模式(Flyweight Pattern)等,但上述模式是更为常见且核心的部分。

2025-01-17 20:11:13 637

原创 MySQL 索引失效场景详解

此外,合理利用EXPLAIN命令可以帮助我们深入了解查询计划,识别索引问题。同时,考虑到实际业务场景的变化,定期维护索引(如重建、重组)也是保证数据库高效运行的重要环节。通过持续监控和优化,可以显著提升应用的整体性能表现。

2025-01-17 19:52:12 455

原创 Spring Bean 作用域详解

描述:在Spring容器中,Singleton作用域意味着一个Bean只会被创建一次,并在整个应用程序生命周期中保持唯一。特点默认作用域:如果未指定其他作用域,则默认为Singleton。全局唯一:无论请求多少次该Bean,返回的都是同一个实例。线程安全:适用于无状态或线程安全的Bean。适用场景:如配置类、工具类、服务层对象等,这些通常不需要维护内部状态。例子@Component// 整个Spring容器中只有一个实例。

2025-01-17 19:48:53 349

原创 Spring Boot 启动流程

Spring Boot 设计旨在简化开发者的体验,减少配置负担的同时保持灵活性和强大的功能。从引导类到优雅关闭,Spring Boot 提供了一套完整的解决方案,使得构建独立、生产级别的基于 Spring 框架的应用变得更加简单快捷。通过自动配置、内嵌服务器等特性,极大地提高了开发效率,让开发者能够更专注于业务逻辑的实现。此外,Spring Boot 还支持微服务架构,使开发人员能够快速搭建分布式系统,提高系统的可扩展性和维护性。

2025-01-17 19:45:52 755

原创 MYSQL数据库事务隔离级别

特性:允许一个事务读取其他事务尚未提交的数据。这是最低级别的隔离。问题脏读(Dirty Read):事务A可能会读取到事务B尚未提交的数据,如果事务B回滚,这些数据实际上是无效的,导致事务A的数据不一致。使用场景:几乎不被使用,因为其非常容易导致数据不一致问题。隔离级别脏读不可重复读幻读性能读未提交可能可能可能最好读已提交否可能可能好可重复读否否可能较好可串行化否否否最差选择合适的事务隔离级别需要根据具体应用的需求权衡数据一致性和并发性能。

2025-01-17 19:42:44 296

原创 Spring Boot 自动装配原理

Spring Boot 的自动装配机制通过检查项目的依赖关系和类路径上的类库,结合条件化配置,实现了无需手动配置即可快速搭建和运行 Spring 应用的目标。这种方式不仅减少了开发者的工作量,还提高了代码的一致性和可维护性。

2025-01-16 20:50:53 356

原创 springBoot中application和bootstrap配置文件的·区别

(或)作为应用程序级别的配置文件,主要用于配置应用程序自身的属性和行为;而(或)则专注于配置 Spring Boot 应用的基础架构和全局属性,确保应用能够在适当的环境下顺利启动。

2025-01-16 20:48:17 318

原创 Spring Boot 项目运行原理

【代码】Spring Boot 项目运行原理。

2025-01-16 20:44:20 297

原创 GET 和 POST请求的区别

GET适合于数据查询和获取,利用 URL 传递参数,支持缓存,具有幂等性,适用于小量且非敏感的数据传输。POST则更适合于数据提交,通过请求体传递数据,适用于大量或敏感数据的传输,不支持自动缓存,不具备幂等性。

2025-01-16 20:38:42 138

原创 Spring MVC常用注解详解与应用

将返回的对象通过HttpMessageConverter转换后写入HTTP响应体中,非常适合构建RESTful Web服务。可用于方法或方法参数上,用于绑定请求参数到模型对象,并将其暴露给视图层。将HTTP请求体的内容转换为Java对象,适用于接收JSON或XML格式的数据。这个注解用于映射HTTP请求到控制器的方法上,支持在类级别或方法级别应用。这些注解不仅提高了开发效率,还增强了代码的清晰度和维护性。这两个注解都用于依赖注入,但它们的工作方式略有不同。一起使用,以定义具体的请求映射规则。

2025-01-15 21:06:53 419

原创 Spring核心注解详解与应用

【代码】Spring核心注解详解与应用。

2025-01-15 20:42:12 769

原创 Token与JWT

在计算机身份认证领域,Token作为一种令牌,在服务端生成。当用户通过前端使用用户名和密码向服务端请求认证时,若认证成功,服务端会返回一个Token给前端。之后,前端可以在每次请求时携带这个Token以证明其合法身份。JWT(JSON Web Token)是一种基于JSON的开放标准(RFC 7519),旨在网络应用环境间传递声明。它将用户信息加密到Token中,而服务器不保存任何用户信息。服务器使用预先保存的密钥验证Token的正确性,一旦验证通过即视为有效。常见应用场景包括用户登录等。

2025-01-15 20:25:41 830

原创 Token的应用、优化与扩展

通过上述措施,Token不仅能简化用户认证过程,还能提高系统的安全性、可靠性和可扩展性,特别适合现代分布式应用和服务架构的需求。

2025-01-15 20:16:24 551

原创 npm run dev报错

查看是否解决了问题。如果问题依旧存在,可能需要进一步检查错误日志以获取更多线索。此外,考虑到未来的发展,考虑迁移到 Dart Sass 也是一个不错的选择,因为 Node Sass 已经不再积极维护,Dart Sass 是其官方推荐的替代品。完成上述步骤后,请再次尝试运行。

2025-01-13 20:36:16 385

原创 npm install 常见错误及其解决方法

过程中遇到了以上之外的错误,具体问题可能涉及到环境配置、网络、包版本冲突等多个因素。

2025-01-13 20:27:08 2806

空空如也

空空如也

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

TA关注的人

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