自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Vue3研学-标签ref属性与TS接口泛型

本文介绍了Vue 3中ref属性的使用方法和TypeScript接口的应用。主要内容包括: ref属性用于获取DOM元素或组件实例的引用,可以在模板中标记HTML标签或组件标签,通过ref.value访问。不同组件间的同名ref互不影响。 父组件通过ref引用子组件时,默认无法直接访问子组件内部数据,需在子组件中使用defineExpose显式暴露。 通过TypeScript接口可以规范对象结构,示例中创建了personInter接口限制对象属性,并定义了Persons类型规范对象数组。 演示了如何在Vue

2026-01-08 16:40:03 235

原创 Vue3研学-watch监视

Vue 3 的 watch API 提供了多种数据监听方式:1) 监听 ref 基本类型数据时直接监视变量;2) 监听 ref 对象类型需开启 deep 选项;3) reactive 对象默认深度监听;4) 监听对象特定属性需使用 getter 函数。watch 支持配置 immediate 立即执行和深度监听,通过返回的 stop 函数可手动停止监听。与 watchEffect 相比,watch 能更精确控制依赖范围和监听行为,适合处理异步操作和复杂状态变更场景。

2026-01-08 16:39:17 973

原创 Vue3研学-computed计算属性

摘要 Vue计算属性computed通过封装计算函数实现数据响应式处理,自动追踪依赖项变化并缓存结果,优化性能表现。与普通方法不同,计算属性默认只读(需通过set实现修改),适合处理高频读取的派生数据。示例展示了:1)基础只读计算属性实现数据隐藏;2)通过get/set实现可读写计算属性,修改实际作用于原始响应式数据而非计算结果本身。计算属性相比方法调用能显著减少重复计算开销,是Vue响应式系统的重要特性。

2026-01-05 09:37:58 374

原创 Java-常见面试题收集2025(三)

本文摘要: 分库分表时机:当单库数据量超过SSD 500GB或机械硬盘200GB,或B+树索引超过3层(约1700万行数据)时考虑分库分表,主要解决存储空间、CPU资源和性能瓶颈问题。 Spring Bean顺序控制:可通过@DependsOn注解或实现BeanDefinitionRegistryPostProcessor接口来调整Bean创建顺序。 @Component与@Bean区别:前者用于类级别自动注册,后者用于方法级别手动配置Bean,后者提供更灵活的创建控制。 布尔类型命名规范:避免使用is开头

2026-01-05 09:36:49 908

原创 Java-常见面试题收集2025(二)

Redisson采用Lua脚本而非事务实现分布式锁,主要基于三方面考量:1)性能优化,Lua脚本减少网络往返;2)动态逻辑支持,可基于中间结果分支执行;3)Redis事务存在局限性,无法保证原子回滚。Redisson分布式锁实现包含锁等待(Pub/Sub+Semaphore)、锁重入(Hash结构)、锁续期(看门狗机制)三大核心功能,通过Hash存储线程信息与重入次数,结合时间轮实现自动续期,相比原生Redis锁支持更完善的分布式场景需求。

2025-11-21 10:05:38 49

原创 Java-常见面试题收集2025(一)

本文摘要: 线程交替输出方案:通过volatile变量和synchronized锁两种方式实现0-200的交替打印,分别利用可见性和互斥锁机制保证线程安全。 模糊查询优化:针对%前置查询导致索引失效问题,提出反向索引、限制查询量、覆盖索引、Redis缓存和Elasticsearch五种优化方案。 Stream与for循环对比:分析Stream的延迟执行、不可变性和并行特性,指出简单遍历用for循环,复杂处理用Stream的性能取舍。 自增主键问题:说明分库分表时自增ID的局限性,建议采用分布式ID生成方案避

2025-11-21 10:04:46 40

原创 Vue3研学-setup与响应式数据(二)

摘要:本文对比了Vue3中ref和reactive的特点与使用场景。ref适用于基本类型和对象类型数据,需通过.value访问,但可直接重新赋值;reactive仅适用于对象类型,直接访问属性但重新赋值会失去响应式。文章还介绍了toRefs和toRef解决reactive解构问题,避免响应性丢失。通过代码示例展示了两种API的具体用法和注意事项,帮助开发者根据场景选择合适的响应式API。

2025-11-20 10:14:55 647

原创 Vue3研学-setup与响应式数据(一)

Vue 3 Setup 与响应式数据摘要 Vue 3 的 setup 是一个配置项,可与传统 Options API 共存但不建议混用。setup 生命周期早于 data/methods,data 可通过 this 访问 setup 数据但反之不行,同名属性 setup 优先。 setup 语法糖 <script setup> 简化写法,自动暴露变量无需 return,支持更好的 TypeScript 集成。 响应式数据通过 ref 创建: 基本类型:ref 包装后成为 RefImpl 实例 模

2025-11-20 10:14:04 1252

原创 Vue3研学-项目搭建(二)

本文介绍了Vue 3项目的核心文件结构和开发流程。主要包含以下内容: 项目结构说明:详细解析了main.ts入口文件、App.vue根组件、components通用组件目录和assets静态资源目录的作用。 开发实践:展示了重构src目录的过程,包括main.ts和App.vue的基本配置,实现了一个简单的页面渲染。 组件开发:通过Person.vue示例演示了Vue 2选项式API的写法,包含数据绑定、方法定义和样式处理。 项目启动流程:总结了Vite+Vue 3从index.html到组件挂载的完整加载

2025-11-19 10:26:20 821

原创 Vue3研学-项目搭建(一)

Vue3是Vue.js的新一代框架,在响应式系统、性能优化和API设计等方面均有重大改进。它采用Proxy实现响应式,支持Composition API、多根节点组件等新特性,同时兼容TypeScript。安装时需配置Node.js环境,通过npm创建基于Vite的Vue3项目,Vite提供高效的开发体验。项目结构包含推荐扩展配置和资源目录,为现代化前端开发提供完整解决方案。

2025-11-19 10:22:21 455

原创 Java研学-SpringCloud(十五)

本文介绍了Seata分布式事务解决方案中实现远程调用的关键步骤。主要内容包括:1)在采购服务中通过@EnableFeignClients启用远程调用功能;2)创建扣减库存和生成订单的Feign客户端接口;3)在采购业务逻辑中整合库存扣减和订单创建操作;4)订单服务创建时还需调用账户服务扣减余额;5)配置OpenFeign日志以方便调试;6)通过@GlobalTransactional注解确保分布式事务一致性。这些步骤构建了完整的跨服务调用链路,为Seata实现分布式事务提供了基础支撑。

2025-11-18 09:33:49 754

原创 Java研学-SpringCloud(十四)

Seata分布式事务解决方案通过引入全局事务管理机制,解决了微服务架构下跨多个数据库的事务一致性问题。本文首先介绍了分布式事务的背景需求,然后详细说明了环境准备工作,包括创建库存(storage_db)、订单(order_db)和账户(account_db)三个数据库及相应表结构。每个数据库都包含业务表(如storage_tbl、order_tbl、account_tbl)和用于事务回滚的undo_log表。最后给出了项目资源导入方法和多模块管理的Maven配置方案,为构建完整的分布式事务系统奠定了基础。

2025-11-18 09:33:16 712

原创 Java研学-SpringCloud(十三)

本文介绍了Spring Cloud Gateway中的过滤器机制,主要包括路径重写过滤器和响应头过滤器。路径重写过滤器(RewritePath)可以动态调整请求路径,如去除前缀/api/product/,实现网关与后端服务的路径解耦。响应头过滤器(AddResponseHeader)可为响应添加自定义头信息。文章还介绍了默认过滤器的全局作用,并提供了详细的YAML配置示例,展示了如何定义路由规则、断言条件以及过滤器链的执行流程。通过实际测试截图验证了过滤器的效果,包括路径重写和响应头添加的成功案例。

2025-08-30 08:44:45 784

原创 Java研学-SpringCloud(十二)

摘要:Gateway网关配置与路由规则实现 本文介绍了Spring Cloud Gateway网关的配置与使用。通过建立网关模块作为统一入口,解决分布式系统中前端直接调用多个后端服务的复杂性问题。主要内容包括: 网关模块创建:引入Nacos服务发现、Gateway和LoadBalancer依赖 路由配置:通过Path断言实现订单和商品服务请求的智能转发 常见问题解决:处理503(负载均衡缺失)和404(路径前缀不匹配)错误 配置优化:为服务添加统一API前缀,确保请求正确路由 实现后的网关能动态感知服务变化

2025-08-30 08:44:12 1128

原创 Java研学-SpringCloud(十一)

【摘要】本文介绍了分布式系统中的熔断规则与热点规则两种关键保护机制。熔断规则通过断路器实现"闭合-打开-半开"状态转换,在检测到下游服务异常时快速切断请求,防止雪崩效应,支持慢调用比例、异常比例和异常数三种触发方式。热点规则则针对高频访问参数进行精细化限流,通过埋点统计特定参数访问频次,保护系统免受局部热点冲击。文中通过商品服务调用场景,详细展示了熔断规则的配置、测试流程及不同触发模式的效果对比,同时阐述了热点规则的工作原理和埋点必要性。

2025-08-29 08:42:33 1044

原创 Java研学-SpringCloud(十)

Sentinel流控规则通过限制QPS或并发线程数防止系统过载,确保高并发下的稳定性。支持三种策略:直接策略(默认快速失败)、链路策略(区分不同调用方的访问限制)和关联策略(当关联资源达到阈值时触发限流)。配置时需注意集群模式下的单机均摊与总体阈值区别,以及链路策略需关闭上下文统一。实际应用中,可通过设置不同规则实现对核心资源的保护,如读写分离场景下的关联限流。

2025-08-29 08:41:58 1226

原创 Java研学-SpringCloud(九)

本文介绍了Sentinel异常处理机制,主要分为Web接口资源异常和@SentinelResource注解资源异常两种情况。对于Web接口异常,通过实现BlockExceptionHandler接口自定义异常处理器,替代默认的错误页面,返回JSON格式的错误信息。对于@SentinelResource注解标记的方法异常,可以通过blockHandler属性指定兜底回调方法处理异常。文章还提供了统一返回对象R的设计实现,以及详细的代码示例,帮助开发者实现自定义异常处理流程。

2025-08-28 09:07:08 627

原创 Java研学-SpringCloud(八)

摘要:Sentinel是一个微服务稳定性保障工具,通过定义资源和规则实现流量控制、熔断降级等功能。资源可通过自动适配或手动定义(SphU API或@SentinelResource注解),支持流量控制、熔断降级等五大规则类型。文章详细介绍了Sentinel控制台的下载、启动及配置方法,并演示了如何在订单服务中定义资源和设置流控规则,当请求超过阈值时会触发限流保护机制,确保系统稳定性。

2025-08-28 09:06:07 675

原创 Java研学-SpringCloud(七)

本文介绍了微服务调用日志配置和超时控制机制。在日志配置部分,通过application.yml设置日志级别,并创建OrderServiceConfig配置类实现Feign全日志记录。超时控制部分阐述了连接超时和读取超时的作用,演示了如何通过修改ProductServiceImpl引入延迟,以及如何创建独立的application-feign.yml配置文件来调整不同服务的超时参数。最后说明了如何在主配置文件中引入这些特定配置,实现细粒度的远程调用控制。这些措施有效提升了分布式系统的可观测性和稳定性。

2025-08-27 09:00:59 783

原创 Java研学-SpringCloud(六)

OpenFeign与第三方API调用实践 OpenFeign是一种声明式REST客户端工具,通过注解简化微服务间调用,自动处理网络请求、序列化和负载均衡等细节。与编程式RestTemplate相比,它显著减少模板代码。使用步骤包括导入依赖、开启远程调用功能、创建远程调用接口(使用@FeignClient注解)并注入使用。测试验证了其有效性。 对于第三方API调用,阿里云市场提供了各种API服务。开发者可选择免费API,通过接口文档了解请求地址、方式、认证机制等信息,实现跨平台数据交互。简单身份认证调用方法可

2025-08-27 08:53:03 933

原创 Java研学-SpringCloud(五)

本文介绍了Nacos配置中心的使用方法,包括依赖引入、配置文件设置、数据集创建和动态刷新配置的实现。主要内容有:1)在微服务中引入Nacos配置中心依赖;2)通过配置文件指定Nacos地址和数据集;3)在Nacos控制台创建配置数据集;4)使用@Value注解获取配置值;5)通过@RefreshScope实现配置动态刷新;6)解决未使用配置中心时的启动报错问题;7)优化动态刷新方案,使用@ConfigurationProperties批量绑定配置;8)说明配置优先级规则(外部配置优先);9)介绍监听配置变化

2025-08-17 22:53:58 1307

原创 Java研学-SpringCloud(二)

本文介绍了如何搭建一个基于Spring Cloud Alibaba的微服务父工程cloud-play。主要内容包括:1) 创建父工程并配置pom文件,通过dependencyManagement管理Spring Boot、Spring Cloud和Spring Cloud Alibaba的版本;2) 创建聚合模块services管理所有微服务子模块;3) 创建商品微服务service-product和订单微服务service-order子模块;4) 在聚合模块中导入公共依赖,便于所有微服务共享。项目采用Ma

2025-08-17 16:18:23 388

原创 Java研学-SpringCloud(四)

本文介绍了微服务架构中的远程调用实现方法。主要内容包括:1)创建共享的模型层(model)集中管理所有实体类,方便服务间调用;2)配置RestTemplate组件实现远程服务调用;3)通过DiscoveryClient获取服务实例列表;4)演示订单服务调用商品服务的完整流程;5)引入负载均衡机制,使用LoadBalancerClient实现请求的轮询分发。文章提供了详细的代码示例和配置说明,展示了如何构建微服务间的通信机制,并确保服务调用的可靠性和负载均衡能力。

2025-08-15 23:07:18 1261 2

原创 Java研学-SpringCloud(三)

本文介绍了Nacos微服务组件的核心使用方法和配置流程。首先详细讲解了Nacos 2.5.0版本的下载安装、单机模式启动和访问8848端口的基本操作。随后通过service-order和service-product两个微服务示例,展示了如何添加Web依赖、配置主启动类、设置服务注册信息,并实现多副本启动模拟集群环境。重点阐述了服务发现的实现方式,包括@EnableDiscoveryClient注解的使用、DiscoveryClient和NacosServiceDiscovery两种服务发现客户端的应用。文

2025-08-15 23:06:44 1496

原创 Java研学-SpringCloud(一)

本文介绍了三种服务器架构演进过程:1)单体架构将所有功能集中在一个项目中,部署简单但性能有限;2)集群架构通过网关实现负载均衡,支持横向扩展但存在全局升级问题;3)分布式架构按功能拆分为微服务,支持独立部署、多语言交互,并引入注册中心、服务发现等机制。文章详细说明了每种架构的部署流程、优缺点及演进动因,重点解析了分布式架构的核心概念(RPC、熔断等)和请求流程,最终区分了分布式(工作方式)与集群(物理形态)的本质差异。

2025-08-14 09:45:42 312

原创 Java研学-RabbitMQ(八)

RabbitMQ消费者可靠性保障体系包括确认机制、重试策略和幂等性设计。消费者通过ACK/NACK显式确认消息处理状态,失败时触发自动或手动重试,超限后进入死信队列。Spring AMQP提供本地重试机制,配置参数包括重试开关、初始间隔和倍数因子。业务层需实现幂等性处理,确保重复消费时数据一致性。该机制支持区分系统异常(自动重试)和业务异常(直接丢弃),通过acknowledge-mode配置(none/auto/manual)灵活控制消息删除时机,形成从投递到处理的全链路可靠性保障。

2025-08-14 09:45:02 1079

原创 Java研学-RabbitMQ(七)

RabbitMQ消息可靠性保障方案:通过数据持久化和惰性队列的组合策略确保消息不丢失。数据持久化包括交换机、队列和消息三者的持久化配置(durable=true和delivery_mode=2),将关键数据写入磁盘,但会降低性能约30-50%。惰性队列(Lazy Queue)通过x-queue-mode=lazy参数让消息直接写入磁盘而非内存,能处理百万级消息堆积,特别适合大消息量场景。测试显示持久化消息可避免Paged Out机制导致的内存阻塞问题。3.12+版本默认所有队列为惰性队列,建议根据业务对延迟

2025-08-13 22:00:30 1109

原创 Java研学-RabbitMQ(六)

生产者消息可靠性保障方案 本文介绍了RabbitMQ生产者消息可靠性的实现方案,主要包括生产者重连和确认机制: 生产者重连:通过配置自动重连参数解决网络异常问题,包括连接超时、重试间隔和最大重试次数设置,确保网络中断时能自动恢复连接。 生产者确认机制: 提供三种确认模式(none/simple/correlated)满足不同可靠性需求 通过PublisherConfirm和PublisherReturn双机制确保消息投递全链路可追溯 异步回调模式(correlated)配合mandatory参数实现高效可靠

2025-08-13 21:59:58 1307 2

原创 Java研学-RabbitMQ(五)

本文介绍了Spring AMQP中队列、交换机的声明方式及消息转换器的使用。通过代码配置类(FanoutConfiguration)演示了广播交换机的声明与绑定,使用@RabbitListener注解简化了Direct交换机的配置。重点说明了消息转换器的作用,通过Jackson2JsonMessageConverter替代默认JDK序列化,提升消息传输的安全性和性能。文中包含完整的代码示例,展示了如何发送和接收JSON格式的复杂对象消息,并配有管理界面截图说明最终的交换机、队列和绑定关系。

2025-07-26 11:15:50 430

原创 Java研学-RabbitMQ(四)

本文介绍了RabbitMQ中三种交换机类型及其使用方法。Fanout交换机实现广播模式,将消息发送到所有绑定队列,适用于日志、通知等场景;Direct交换机通过精确匹配RoutingKey路由消息,适合精准控制的任务分发;Topic交换机支持通配符匹配,实现多级分类路由。每种交换机类型都包含队列创建、交换机绑定、消费者监听和消息发送的完整代码示例,展示了不同路由策略的实际应用场景和配置方式。

2025-07-26 11:15:22 455

原创 Java研学-RabbitMQ(三)

本文介绍了基于AMQP协议和Spring AMQP实现的消息队列通信方案。首先概述了AMQP协议作为跨平台消息标准的特性,以及Spring AMQP对RabbitMQ的封装优势。接着通过一个入门Demo详细演示了如何搭建RabbitMQ环境,包括创建虚拟主机、交换机与队列绑定,以及父工程依赖配置。文章重点展示了Workqueues工作队列模式,通过代码示例说明了多消费者负载均衡的实现,并分析了默认轮询策略的不足。最后介绍了通过配置prefetchCount参数优化消息分发的解决方案,确保消费者按实际处理能力

2025-07-25 22:56:34 965

原创 Java研学-RabbitMQ(二)

本文介绍了RabbitMQ控制台操作和数据隔离配置方法。控制台操作部分详细说明了如何添加队列、通过交换机发布消息(包括交换机绑定队列、发布流程和消息检查等步骤)。数据隔离部分展示了创建用户和虚拟主机实现项目间数据隔离的过程,以及交换机在不同虚拟主机间的隔离效果。通过图文结合的方式,完整呈现了RabbitMQ基础配置的全流程,为消息队列的部署和管理提供了实用指导。

2025-07-25 22:55:54 212

原创 Linux研学-Nginx安装

Nginx是一款高性能HTTP和反向代理服务器,支持高并发连接,广泛用于静态资源托管、负载均衡等场景。本文介绍了在CentOS系统下通过YUM安装Nginx的详细步骤:首先安装依赖工具并配置官方仓库,然后执行安装命令;启动服务后需检查80端口状态并配置防火墙放行规则。安装完成后可通过浏览器访问验证Nginx是否正常运行。该过程涵盖了从环境准备到服务部署的完整流程,适合快速搭建Nginx服务器。

2025-07-23 09:01:10 345

原创 Java研学-RabbitMQ(一)

RabbitMQ是一款基于Erlang的开源消息队列系统,提供高效的异步通信服务,广泛应用于分布式系统和微服务架构。本文介绍了RabbitMQ的核心价值(系统解耦、流量削峰、异步通信等)及其优势(高可靠性、灵活路由、可扩展性等)。详细讲解了在CentOS7上的安装步骤(需先安装Erlang环境),包括版本选择、服务启动、防火墙配置等操作指南。还介绍了如何启用RabbitMQ的WEB管理控制台,包括添加管理员用户和权限设置。RabbitMQ通过交换机与队列的机制实现消息路由,并支持虚拟主机进行数据隔离,是企业

2025-07-23 09:00:25 1379

原创 Linux研学-Tomcat安装

本文介绍了Tomcat的安装配置过程。Tomcat是Apache开发的开源Servlet容器,支持Java Web应用托管。安装步骤包括:1)安装JDK并配置环境变量;2)创建专属tomcat用户;3)下载解压Tomcat安装包;4)设置软连接和目录权限;5)启动Tomcat服务并验证;6)配置防火墙放行8080端口。整个过程强调使用非root用户运行Tomcat以确保安全性,并提供了两种防火墙配置方案。最终通过curl测试和端口检查确认服务正常运行。

2025-07-22 23:07:13 534

原创 Linux研学-MySQL安装

本文介绍了MySQL 5.7和8.0在Linux系统上的安装配置流程。主要内容包括:1)通过配置远程仓库获取指定版本;2)安装服务并启动;3)获取初始临时密码;4)修改密码及调整密码策略;5)配置远程登录权限;6)检查3306端口状态。对每个版本都详细说明了安装步骤,并区分了5.7和8.0在密码修改、远程登录配置等方面的不同操作方式,适用于生产环境和测试环境的不同需求。

2025-07-22 23:06:33 215

原创 Java研学-Elasticsearch(二)

本文介绍了Elasticsearch索引库和文档的基本操作。索引库部分详细说明了Mapping的核心属性(如类型、分词器、日期格式等),并提供了创建、查看、删除和修改索引库的DSL语法示例。文档操作部分则涵盖了新增、查询、删除和修改文档的基本方法。文章还包含多个可视化示例,展示了实际操作的请求和响应内容,帮助读者快速掌握Elasticsearch的基础数据管理功能。

2025-07-10 12:49:54 749

原创 Linux研学-环境变量

Linux环境变量与文件管理摘要 环境变量是操作系统存储配置信息的键值对,PATH变量尤为重要,它定义了命令搜索路径。Linux中可通过export临时设置或修改.bashrc/.profile永久生效。$运算符用于取值,需注意变量边界问题。自定义环境变量时需配置PATH并设置文件权限。文件传输可通过Xftp可视化操作或rz/sz命令实现。压缩解压常用工具包括tar(支持多种格式如.gz/.bz2)和zip/unzip,需掌握不同选项组合。关键命令如tar -zcvf压缩、tar -zxvf解压、zip -

2025-07-10 12:49:19 552

原创 Linux研学-资源监控

本文介绍了Linux进程基础知识和资源监控工具的使用。主要内容包括:1)进程概念,解释进程是程序的动态执行实例,拥有独立资源;2)常用命令如ps查看进程信息(-ef/aux选项)、kill终止进程(-9强制终止);3)top命令实时监控系统资源,详细解析其输出信息如CPU、内存使用率和进程状态。文章通过具体命令示例和参数说明,帮助读者掌握进程管理和系统监控的基本操作技能。

2025-07-09 10:31:56 1032

原创 Linux研学-实用操作

本文总结了Linux常用操作技巧,包括:1)实用快捷键如强制停止程序(Ctrl+C)、退出账户(Ctrl+D)、历史命令搜索(Ctrl+R);2)软件安装方法(yum/apt命令)和服务管理(systemctl);3)时间相关操作(date命令、修改时区、NTP服务);4)域名解析原理及主机名配置;5)IP地址查看(ifconfig)和固定IP的重要性。这些技巧有助于提高Linux系统的使用效率和稳定性,适合运维人员日常参考使用。(149字)

2025-07-09 10:30:55 1032

SpringCloud-demo

主要配合Java研学SpringCloud系列使用,内含代码,nacos2.5.0,seata2.3.0,sentinel控制台1.8.8

2025-08-31

空空如也

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

TA关注的人

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