<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[myli92的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/myli92</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; myli92]]></copyright><item><title><![CDATA[中间件和分类]]></title><link>https://blog.youkuaiyun.com/myli92/article/details/151972177</link><guid>https://blog.youkuaiyun.com/myli92/article/details/151972177</guid><author>myli92</author><pubDate>Mon, 22 Sep 2025 20:32:06 +0800</pubDate><description><![CDATA[中间件是介于客户端和服务器之间的软件组件，用于处理请求、响应和数据转换。主要包括以下几类：1）Web服务器中间件（如Apache、Nginx）；2）数据库中间件（如MySQL Proxy、Oracle RAC）；3）消息中间件（如Kafka、RabbitMQ）；4）缓存中间件（如Redis、Memcached）；5）应用服务器中间件（如Tomcat、WebSphere）；6）日志中间件（如Elasticsearch、Graylog）。这些中间件通过提供负载均衡、缓存、异步通信等功能，提高系统性能和可扩展性。]]></description><category></category></item><item><title><![CDATA[Java 生成签名证书]]></title><link>https://blog.youkuaiyun.com/myli92/article/details/151333661</link><guid>https://blog.youkuaiyun.com/myli92/article/details/151333661</guid><author>myli92</author><pubDate>Mon, 08 Sep 2025 22:18:04 +0800</pubDate><description><![CDATA[Java中使用keytool生成签名证书的基本步骤包括：创建密钥库和密钥对，生成CSR请求，获取CA签名后导入证书。通过命令可查看密钥库内容、导出证书或导入其他CA证书。整个过程确保密钥库包含私钥和对应公钥证书，实现安全认证。keytool工具简化了证书管理，是Java安全体系的重要组成部分。]]></description><category></category></item><item><title><![CDATA[Jenkins Pipeline(二)-设置Docker Agent]]></title><link>https://blog.youkuaiyun.com/myli92/article/details/150984247</link><guid>https://blog.youkuaiyun.com/myli92/article/details/150984247</guid><author>myli92</author><pubDate>Fri, 29 Aug 2025 22:12:52 +0800</pubDate><description><![CDATA[设计流水线的目的是更方便地使用镜像作为单个或整个流水线的执行环境。]]></description><category></category></item><item><title><![CDATA[java内存缓存]]></title><link>https://blog.youkuaiyun.com/myli92/article/details/150378108</link><guid>https://blog.youkuaiyun.com/myli92/article/details/150378108</guid><author>myli92</author><pubDate>Thu, 14 Aug 2025 07:42:35 +0800</pubDate><description><![CDATA[本文介绍了在Java项目中实现内存缓存的三种方案：1) 使用ScheduledExecutorService与ConcurrentHashMap结合，通过定时任务清理过期条目；2) 利用java.time.Instant管理过期时间，配合后台线程定期清理；3) 采用第三方库如ExpiringMap和Guava的LoadingCache，提供更完善的缓存功能（如过期策略、监听器、懒加载等）。这些方案适用于不需要Redis/Memcache等专业缓存框架的简单项目，可有效降低系统复杂性。]]></description><category></category></item><item><title><![CDATA[SpringBoot 服务器配置]]></title><link>https://blog.youkuaiyun.com/myli92/article/details/149865581</link><guid>https://blog.youkuaiyun.com/myli92/article/details/149865581</guid><author>myli92</author><pubDate>Sat, 02 Aug 2025 23:01:09 +0800</pubDate><description><![CDATA[摘要：SpringBoot的默认HTTP请求头最大长度为8KB，可通过server.max-http-request-header-size配置修改。连接数配置因服务器而异：Tomcat默认最大连接数8192，工作线程200，等待队列100；Jetty线程数默认200，连接数无上限；Undertow默认I/O线程为CPU核心数×2，工作线程200。配置参数包括server.tomcat.max-threads、server.jetty.threads.max和server.undertow.threads.]]></description><category></category></item><item><title><![CDATA[java 使用jdbc/ojdbc连接oracle的三种方式]]></title><link>https://blog.youkuaiyun.com/myli92/article/details/149427437</link><guid>https://blog.youkuaiyun.com/myli92/article/details/149427437</guid><author>myli92</author><pubDate>Thu, 17 Jul 2025 18:21:36 +0800</pubDate><description><![CDATA[本文介绍了三种连接Oracle数据库的方法：1）使用service_name，JDBC URL格式为&quot;jdbc:oracle:thin:@//host:port/servicename&quot;或通过TNSNAMES.ORA文件；2）使用SID连接（不推荐），格式为&quot;jdbc:oracle:thin:@host:port:SID&quot;；3）使用tnsname连接，格式为&quot;jdbc:oracle:thin:@TNSNAME&quot;。Oracle官方推荐优先使用serv]]></description><category></category></item><item><title><![CDATA[SpringBoot异常处理的5种方式]]></title><link>https://blog.youkuaiyun.com/myli92/article/details/149266325</link><guid>https://blog.youkuaiyun.com/myli92/article/details/149266325</guid><author>myli92</author><pubDate>Fri, 11 Jul 2025 09:29:51 +0800</pubDate><description><![CDATA[【摘要】本文介绍了Spring中四种异常处理方式：1）使用@ExceptionHandler注解在Controller中处理特定异常；2）通过@RestControllerAdvice实现全局异常拦截；3）配置SimpleMappingExceptionResolver进行异常映射；4）自定义HandlerExceptionResolver实现精细化异常处理。其中全局异常处理（方式2）和自定义Resolver（方式4）更为灵活，可根据异常类型返回不同响应（ResponseEntity/ModelAndVie]]></description><category></category></item><item><title><![CDATA[SpringBoot 参数校验]]></title><link>https://blog.youkuaiyun.com/myli92/article/details/149265472</link><guid>https://blog.youkuaiyun.com/myli92/article/details/149265472</guid><author>myli92</author><pubDate>Fri, 11 Jul 2025 07:57:15 +0800</pubDate><description><![CDATA[定义校验注解String message() default "自定义校验信息";Class<?Class<?实现校验器@Override// 初始化代码，如果需要可以从注解中读取配置信息@Override// 这里编写具体的校验逻辑// 或者返回false，取决于你希望null值是否通过校验// 例如，检查value是否为特定的字符串在实体或DTO中使用自定义注解@MyConstraint(message = "用户名不符合预期")// 其他字段和方法。]]></description><category></category></item><item><title><![CDATA[Java并发测试工具]]></title><link>https://blog.youkuaiyun.com/myli92/article/details/149265263</link><guid>https://blog.youkuaiyun.com/myli92/article/details/149265263</guid><author>myli92</author><pubDate>Fri, 11 Jul 2025 07:05:23 +0800</pubDate><description><![CDATA[本文介绍了Java并发测试的主要工具和方法。单元测试方面，TestNG、JUnit5和ConcurrentUnit支持通过注解配置并发线程数，验证线程安全；负载测试工具如JMeter、Gatling和Locust可用于模拟高并发场景；性能基准测试推荐JMH。核心测试方法包括安全性验证、活跃性检测和性能指标测试。最佳实践强调线程安全设计、边界条件覆盖和工具链集成。最后给出问题类型与工具的对应建议：数据竞争用TestNG/JMH，死锁用jstack，性能瓶颈用JMeter/Gatling，高并发压测推荐Gatl]]></description><category></category></item><item><title><![CDATA[Jenkins Pipeline(二)]]></title><link>https://blog.youkuaiyun.com/myli92/article/details/149136696</link><guid>https://blog.youkuaiyun.com/myli92/article/details/149136696</guid><author>myli92</author><pubDate>Sat, 05 Jul 2025 14:53:33 +0800</pubDate><description><![CDATA[Jenkins Pipeline中的变量使用与POM文件读取技巧 摘要：Jenkins Pipeline提供了多种变量定义方式：1)脚本变量通过Groovy脚本定义（如def myVar）；2)全局变量通过env对象访问系统变量（如BUILD_NUMBER）；3)环境变量可在系统配置或pipeline中设置（environment指令）。对于Maven项目，可通过Pipeline Maven Integration插件读取pom.xml，使用readMavenPom方法获取项目信息（版本、依赖等）。这些功能]]></description><category></category></item><item><title><![CDATA[访问远程的Docker节点]]></title><link>https://blog.youkuaiyun.com/myli92/article/details/148881261</link><guid>https://blog.youkuaiyun.com/myli92/article/details/148881261</guid><author>myli92</author><pubDate>Tue, 24 Jun 2025 23:42:57 +0800</pubDate><description><![CDATA[摘要：访问远程Docker主机主要有两种方式：一是通过SSH登录远程服务器执行Docker命令；二是配置Docker守护进程允许远程连接（推荐）。后者的关键步骤包括：修改daemon.json文件或服务配置添加TCP监听端口（默认2375）、重启Docker服务、配置防火墙放行端口。连接时可使用Docker CLI（设置DOCKER_HOST环境变量或上下文）、Docker API、Docker-compose或SSH隧道等方式。该方法避免了文件上传，可直接从本地部署服务到远程主机。]]></description><category></category></item><item><title><![CDATA[docker搭建私有Nexus3]]></title><link>https://blog.youkuaiyun.com/myli92/article/details/148873038</link><guid>https://blog.youkuaiyun.com/myli92/article/details/148873038</guid><author>myli92</author><pubDate>Tue, 24 Jun 2025 15:54:20 +0800</pubDate><description><![CDATA[Nexus3私服部署与使用指南 摘要：本文介绍了Nexus3私服的五大优势，包括节省带宽、加速构建、提升稳定性等。详细说明了通过Docker（包括docker run和docker-compose两种方式）部署Nexus3的步骤，以及初次登录配置流程。重点讲解了Maven私仓的配置方法，包括修改settings.xml文件设置仓库地址、认证信息，以及在项目pom.xml中添加distributionManagement配置。同时还说明了不同类型仓库（Proxy、Hosted、Group）的作用及配置注意事项]]></description><category></category></item><item><title><![CDATA[lombok 在 jdk 23 版本下javac无法编译问题]]></title><link>https://blog.youkuaiyun.com/myli92/article/details/148612213</link><guid>https://blog.youkuaiyun.com/myli92/article/details/148612213</guid><author>myli92</author><pubDate>Thu, 12 Jun 2025 15:57:38 +0800</pubDate><description><![CDATA[maven-compiler-plugin 指定注解处理器路径时，没有确定 lombok 版本号，导致编译报错。检查了IDEA中lombok的插件和pom依赖引入都是没问题的。最后才发现导致的问题。]]></description><category></category></item><item><title><![CDATA[服务间远程调用]]></title><link>https://blog.youkuaiyun.com/myli92/article/details/148483659</link><guid>https://blog.youkuaiyun.com/myli92/article/details/148483659</guid><author>myli92</author><pubDate>Fri, 06 Jun 2025 23:33:02 +0800</pubDate><description><![CDATA[Dubbon和GPRC性能更好,OpenFegin性能差一点OpenFegin和GRPC支持跨语言。OpenFegin使用JSON序列化传输，可读性更高。]]></description><category></category></item><item><title><![CDATA[‌Kafka与RabbitMQ的核心区别]]></title><link>https://blog.youkuaiyun.com/myli92/article/details/148483546</link><guid>https://blog.youkuaiyun.com/myli92/article/details/148483546</guid><author>myli92</author><pubDate>Fri, 06 Jun 2025 22:51:04 +0800</pubDate><description><![CDATA[若需处理高吞吐量的流数据且可接受较高延迟，选择Kafka；若强调实时性、事务性和复杂路由需求，RabbitMQ更合适。]]></description><category></category></item><item><title><![CDATA[集群与分布式与微服务]]></title><link>https://blog.youkuaiyun.com/myli92/article/details/148483431</link><guid>https://blog.youkuaiyun.com/myli92/article/details/148483431</guid><author>myli92</author><pubDate>Fri, 06 Jun 2025 22:40:37 +0800</pubDate><description><![CDATA[摘要： 集群和分布式在架构设计中有本质区别，集群指多服务器共同处理同一业务以提升吞吐量，分布式则是将业务拆分为子任务部署在不同节点以缩短执行时间。微服务是分布式架构的演进，强调细粒度业务拆分（如支付服务拆分为独立子服务）、轻量级通信（REST/gRPC）和独立数据存储（Database per Service），并通过容器化实现敏捷扩展。未来趋势包括混合架构（分布式强一致性与微服务弹性结合）、服务网格（如Istio）和无服务器化。选择依据取决于团队技术栈统一性、运维能力及业务复杂度需求。]]></description><category></category></item><item><title><![CDATA[SpringBoot 优化启动速度]]></title><link>https://blog.youkuaiyun.com/myli92/article/details/148232678</link><guid>https://blog.youkuaiyun.com/myli92/article/details/148232678</guid><author>myli92</author><pubDate>Mon, 26 May 2025 16:35:18 +0800</pubDate><description><![CDATA[启动速度更快，提升水平扩展的启动速度。占用资源更少，打包体积更小。]]></description><category></category></item><item><title><![CDATA[Python 包或模块管理]]></title><link>https://blog.youkuaiyun.com/myli92/article/details/146244431</link><guid>https://blog.youkuaiyun.com/myli92/article/details/146244431</guid><author>myli92</author><pubDate>Fri, 14 Mar 2025 22:17:09 +0800</pubDate><description><![CDATA[在Python项目中引入本地依赖通常指的是在项目中引入本地安装的库或者模块，以便在当前项目中使用。]]></description><category></category></item><item><title><![CDATA[Jenkins Pipeline(一)]]></title><link>https://blog.youkuaiyun.com/myli92/article/details/146265030</link><guid>https://blog.youkuaiyun.com/myli92/article/details/146265030</guid><author>myli92</author><pubDate>Fri, 14 Mar 2025 18:42:14 +0800</pubDate><description><![CDATA[本文介绍了Jenkins Pipeline的基本概念和使用方法。Pipeline支持两种语法：声明式（结构化易读）和脚本式（灵活性强）。创建方式包括BlueOcean图形界面、Classic UI手动输入和SCM源码管理。文章详细对比了两种语法的特点和适用场景：声明式适合标准化流程，脚本式适合复杂逻辑。还提供了多环境部署、并行测试等典型用例，并分析了各自的优缺点。最后指出声明式适合常规CI/CD流程，而脚本式更适合需要高级Groovy特性的复杂场景。]]></description><category></category></item><item><title><![CDATA[Maven指定JDK路径]]></title><link>https://blog.youkuaiyun.com/myli92/article/details/146145907</link><guid>https://blog.youkuaiyun.com/myli92/article/details/146145907</guid><author>myli92</author><pubDate>Mon, 10 Mar 2025 11:51:40 +0800</pubDate><description><![CDATA[在使用 Maven 管理 Java 项目时，有时需要指定使用特定的 JDK 版本。这通常是因为项目需要与特定版本的 JDK 兼容，或者在不同的开发环境中需要确保使用正确的 JDK 版本。通常来说在IDEA工具中设置了正确的JDK版本，使用IDEA编译也不会有任何异常，但是使用mvn命令编译时则会出现异常。]]></description><category></category></item></channel></rss>