<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[喵小狸的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/haifeng3s</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; haifeng3s]]></copyright><item><title><![CDATA[Spring Boot框架结合MongoDB实现日志数据的保存和归档]]></title><link>https://blog.youkuaiyun.com/haifeng3s/article/details/144660834</link><guid>https://blog.youkuaiyun.com/haifeng3s/article/details/144660834</guid><author>haifeng3s</author><pubDate>Mon, 23 Dec 2024 11:03:28 +0800</pubDate><description><![CDATA[1）数据库设计数据模型：确定你的日志记录所需的字段，如时间戳、日志级别、消息内容、用户ID等。索引：为常用查询字段（尤其是时间戳）设置索引，以优化查询性能。2）数据保存策略实时写入：日志数据应该实时写入数据库，可以使用MongoDB的插入操作来实现。批量插入：如果日志数据量很大，可以考虑使用批量插入来减少数据库压力和提高性能。3）归档策略定时任务：使用Spring的@Scheduled注解来创建定时任务，定期执行归档操作。数据迁移：将最近7天的数据保持在主要的集合中，其余数据迁移到归档集合中。]]></description><category></category></item><item><title><![CDATA[RabbitMQ消息队列的10种应用场景]]></title><link>https://blog.youkuaiyun.com/haifeng3s/article/details/144660772</link><guid>https://blog.youkuaiyun.com/haifeng3s/article/details/144660772</guid><author>haifeng3s</author><pubDate>Mon, 23 Dec 2024 11:02:08 +0800</pubDate><description><![CDATA[消息队列不只是传递消息的工具，更是系统解耦、提升稳定性和扩展性的利器。在这10种经典场景中，每一种都能解决特定的业务痛点。]]></description><category></category></item><item><title><![CDATA[SpringBoot使用 AOP 实现自定义日志记录并保存在Mysql]]></title><link>https://blog.youkuaiyun.com/haifeng3s/article/details/144627178</link><guid>https://blog.youkuaiyun.com/haifeng3s/article/details/144627178</guid><author>haifeng3s</author><pubDate>Sat, 21 Dec 2024 10:31:14 +0800</pubDate><description><![CDATA[主要定义了操作日志的一些基本的信息，用来对我们AOP自定义的日志进行存储。`user_id` int DEFAULT NULL COMMENT '用户名',`url` varchar(512) DEFAULT NULL COMMENT '接口',`ip` varchar(100) DEFAULT NULL COMMENT 'ip地址',`param` text COMMENT '接口参数',`time` datetime DEFAULT NULL COMMENT '时间',]]></description><category></category></item><item><title><![CDATA[CompletableFuture使用详解]]></title><link>https://blog.youkuaiyun.com/haifeng3s/article/details/144627064</link><guid>https://blog.youkuaiyun.com/haifeng3s/article/details/144627064</guid><author>haifeng3s</author><pubDate>Sat, 21 Dec 2024 10:30:01 +0800</pubDate><description><![CDATA[平时多线程开发一般就是使用Runnable，Callable，Thread，FutureTask，ThreadPoolExecutor这些内容和并发编程息息相关。相对来对来说成本都不高，多多使用是可以熟悉这些内容。这些内容组合在一起去解决一些并发编程的问题时，很多时候没有办法很方便的去完成异步编程的操作。Thread + Runnable：执行异步任务，但是没有返回结果Thread + Callable + FutureTask：完整一个可以有返回结果的异步任务。]]></description><category></category></item><item><title><![CDATA[SpringBoot整合Spring AOP & Aspectj 框架 快速入门]]></title><link>https://blog.youkuaiyun.com/haifeng3s/article/details/144627047</link><guid>https://blog.youkuaiyun.com/haifeng3s/article/details/144627047</guid><author>haifeng3s</author><pubDate>Sat, 21 Dec 2024 10:28:49 +0800</pubDate><description><![CDATA[到底什么是AOP，很多小伙伴八股文背的6的一，但是实际业务可能工作两年都没用过。所以来说AOP到底是什么玩意？AOP 是 Aspect Oriented Programming 的缩写，译为面向切向编程。图片来理解：假设我有四个行为：在我所有行为之前我都需要 洗手在我所有行为之后我都需要 上厕所解决办法一：每个方法之前加入 洗手 逻辑， 每个方法之后加入 上厕所 逻辑。解决办法二：抽取出一个公用的 洗手 和 上厕所 方法，然后每个行为之前调用 洗手方法，每个行为之后调用 上厕所方法。]]></description><category></category></item><item><title><![CDATA[线程池的执行流程和原理]]></title><link>https://blog.youkuaiyun.com/haifeng3s/article/details/144586215</link><guid>https://blog.youkuaiyun.com/haifeng3s/article/details/144586215</guid><author>haifeng3s</author><pubDate>Thu, 19 Dec 2024 14:56:26 +0800</pubDate><description><![CDATA[线程池是一种线程复用技术，它维护着多个线程等待监督管理者分配可并发执行的任务。处理过程中，将任务添加到队列，然后在线程创建后自动启动这些任务。]]></description><category></category></item><item><title><![CDATA[Spring MVC 中，处理异常的 6种方式]]></title><link>https://blog.youkuaiyun.com/haifeng3s/article/details/144586169</link><guid>https://blog.youkuaiyun.com/haifeng3s/article/details/144586169</guid><author>haifeng3s</author><pubDate>Thu, 19 Dec 2024 14:55:27 +0800</pubDate><description><![CDATA[异常处理是每个 Java程序员需要面对的一个问题，在Spring中，提供了多种机制来处理控制器抛出的异常，确保应用程序在面对各种错误情况时能够优雅地响应。这篇文章，我们来详细分析Spring MVC中，几种优雅处理异常的方式。]]></description><category></category></item><item><title><![CDATA[SpringBoot中基于JWt的授权与续期方案]]></title><link>https://blog.youkuaiyun.com/haifeng3s/article/details/144552556</link><guid>https://blog.youkuaiyun.com/haifeng3s/article/details/144552556</guid><author>haifeng3s</author><pubDate>Wed, 18 Dec 2024 10:10:56 +0800</pubDate><description><![CDATA[请求携带Token：在后续的每一次需授权API请求中，客户端都需在HTTP请求的Authorization头部字段中携带此JWT，以便服务端验证用户的身份和权限。用户认证与Token生成：用户成功登录后，服务端生成一个包含必要信息的JWT并返回给客户端。解决token过期续期问题可以有很多种不同的方案，这里举一些比较有代表性的例子，一种是单token续期，一种是双token续期。使用刷新后的Token：客户端在收到新的Token后，自动替换掉旧的Token，并在后续的请求中携带此新Token继续访问服务。]]></description><category></category></item><item><title><![CDATA[微服务中token鉴权设计的4种方式总结]]></title><link>https://blog.youkuaiyun.com/haifeng3s/article/details/144552446</link><guid>https://blog.youkuaiyun.com/haifeng3s/article/details/144552446</guid><author>haifeng3s</author><pubDate>Wed, 18 Dec 2024 10:05:13 +0800</pubDate><description><![CDATA[JWT是一种用于双方之间安全传输信息的简洁的、URL安全的令牌标准]]></description><category></category></item><item><title><![CDATA[Spring Boot性能提升之虚拟线程]]></title><link>https://blog.youkuaiyun.com/haifeng3s/article/details/144499662</link><guid>https://blog.youkuaiyun.com/haifeng3s/article/details/144499662</guid><author>haifeng3s</author><pubDate>Mon, 16 Dec 2024 10:28:41 +0800</pubDate><description><![CDATA[虚拟线程是 Java 21 引入的一个新特性，用于简化并发编程。]]></description><category></category></item><item><title><![CDATA[HTTPS加密传输的原理与Nginx配置]]></title><link>https://blog.youkuaiyun.com/haifeng3s/article/details/144499617</link><guid>https://blog.youkuaiyun.com/haifeng3s/article/details/144499617</guid><author>haifeng3s</author><pubDate>Mon, 16 Dec 2024 10:27:45 +0800</pubDate><description><![CDATA[本文主要介绍了 HTTPS 加密传输的原理与 Nginx 配置攻略。解释了 HTTPS 相较 HTTP 的安全性，包括对称加密、非对称加密、数字证书的验证方式。还阐述了 HTTPS 的流程，即 TCP 三次握手加 TLS 四次握手。最后给出了在 Nginx 中配置 HTTPS 的相关代码和参数。]]></description><category></category></item><item><title><![CDATA[RocketMQ怎么实现延时消息]]></title><link>https://blog.youkuaiyun.com/haifeng3s/article/details/144464906</link><guid>https://blog.youkuaiyun.com/haifeng3s/article/details/144464906</guid><author>haifeng3s</author><pubDate>Sat, 14 Dec 2024 09:30:06 +0800</pubDate><description><![CDATA[RocketMQ实现延时消息的功能，为开发者在需要基于时间触发事件的场景中提供了便利。]]></description><category></category></item><item><title><![CDATA[java Spring Cloud 如何设计一个高并发系统]]></title><link>https://blog.youkuaiyun.com/haifeng3s/article/details/144464894</link><guid>https://blog.youkuaiyun.com/haifeng3s/article/details/144464894</guid><author>haifeng3s</author><pubDate>Sat, 14 Dec 2024 09:28:55 +0800</pubDate><description><![CDATA[这篇文章高并发系统设计一些关键点，18个常用设计技术]]></description><category></category></item><item><title><![CDATA[Spring Boot启动流程详解]]></title><link>https://blog.youkuaiyun.com/haifeng3s/article/details/144464880</link><guid>https://blog.youkuaiyun.com/haifeng3s/article/details/144464880</guid><author>haifeng3s</author><pubDate>Sat, 14 Dec 2024 09:27:31 +0800</pubDate><description><![CDATA[Spring Boot 是一个用于简化 Spring 应用程序开发的框架，提供了便捷的配置和自动化功能。这篇文章，我们将深入探讨 Spring Boot 的启动流程，包括其背后的重要组件和原理。]]></description><category></category></item><item><title><![CDATA[Nginx 性能优化方案]]></title><link>https://blog.youkuaiyun.com/haifeng3s/article/details/144441562</link><guid>https://blog.youkuaiyun.com/haifeng3s/article/details/144441562</guid><author>haifeng3s</author><pubDate>Fri, 13 Dec 2024 09:05:01 +0800</pubDate><description><![CDATA[Nginx是一款高性能的Web服务器，广泛应用于互联网领域。然而在高并发、大流量的情况下，Nginx的性能可能会受到一定的影响。因此，对Nginx进行性能优化是非常必要的。]]></description><category></category></item><item><title><![CDATA[Mysql 深度分页查询优化]]></title><link>https://blog.youkuaiyun.com/haifeng3s/article/details/144441478</link><guid>https://blog.youkuaiyun.com/haifeng3s/article/details/144441478</guid><author>haifeng3s</author><pubDate>Fri, 13 Dec 2024 09:00:55 +0800</pubDate><description><![CDATA[在 MySQL 中，分页是一个常见的功能，mysql在数据量大的时候，深度分页数据偏移量会增大，导致查询效率越来越低]]></description><category></category></item><item><title><![CDATA[Redis缓存的穿透，击穿，雪崩，热点key等问题]]></title><link>https://blog.youkuaiyun.com/haifeng3s/article/details/144417193</link><guid>https://blog.youkuaiyun.com/haifeng3s/article/details/144417193</guid><author>haifeng3s</author><pubDate>Thu, 12 Dec 2024 09:42:59 +0800</pubDate><description><![CDATA[缓存雪崩:由于缓存层承载着大量请求,有效地保护了存储层,但是如果缓存层由于某些原因不能提供服务，比如同一时间缓存数据大面积失效，那一瞬间Redis跟没有一样，于是所有的请求都会达到存储层，存储层的调用量会暴增，造成存储层也会级联宕机的情况。第二，缓存层和存储层的数据会有一段时间窗口的不一致，可能会对业务有一定影响。缓存击穿是指一个Key非常热点，在不停的扛着大并发，大并发集中对这一个点进行访问，当这个Key在失效的瞬间，持续的大并发就穿破缓存，直接请求数据库，就像在一个完好无损的桶上凿开了一个洞。]]></description><category></category></item><item><title><![CDATA[Java 实现接口幂等的九种方法]]></title><link>https://blog.youkuaiyun.com/haifeng3s/article/details/144417153</link><guid>https://blog.youkuaiyun.com/haifeng3s/article/details/144417153</guid><author>haifeng3s</author><pubDate>Thu, 12 Dec 2024 09:40:55 +0800</pubDate><description><![CDATA[在分布式系统中，接口的幂等性至关重要，它能确保重复请求不会导致意外的副作用。本文深入探讨了 Java 实现接口幂等的九种方法，包括数据库唯一约束、状态机、分布式锁等，并通过详细的代码示例和实际应用场景，帮助读者全面理解和掌握这些方法，以提升系统的稳定性和数据一致性。]]></description><category></category></item><item><title><![CDATA[JVM调优]]></title><link>https://blog.youkuaiyun.com/haifeng3s/article/details/144417063</link><guid>https://blog.youkuaiyun.com/haifeng3s/article/details/144417063</guid><author>haifeng3s</author><pubDate>Thu, 12 Dec 2024 09:38:09 +0800</pubDate><description><![CDATA[在项目开发过程中，生产环境中，任何问题的解决，性能的调优总结下来就三个步骤，即发现问题、定位问题、解决问题。本文将从这个步骤入手，详细阐述内存溢出（OOM、OutOfMemeory）、CPU飙高、GC频繁等JVM问题的排查、定位，以及调优。 ]]></description><category></category></item><item><title><![CDATA[mysql索引失效问题以及EXPLAIN详解]]></title><link>https://blog.youkuaiyun.com/haifeng3s/article/details/144313721</link><guid>https://blog.youkuaiyun.com/haifeng3s/article/details/144313721</guid><author>haifeng3s</author><pubDate>Sat, 07 Dec 2024 17:43:02 +0800</pubDate><description><![CDATA[索引失效场景索引失效场景主要总结出10点索引失效的场景，首先了解下性能查询explain 工具参数的详解。]]></description><category></category></item></channel></rss>