<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Flyer的后花园]]></title><description><![CDATA[微信公众号 java架构狮 java交流QQ群 606700249]]></description><link>https://blog.csdn.net/AlbertFly</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; AlbertFly]]></copyright><item><title><![CDATA[构建你的“健康技术栈”：程序员可持续奋斗的底层逻辑]]></title><link>https://blog.csdn.net/AlbertFly/article/details/156765871</link><guid>https://blog.csdn.net/AlbertFly/article/details/156765871</guid><author>AlbertFly</author><pubDate>Fri, 09 Jan 2026 15:42:44 +0800</pubDate><description><![CDATA[程序员健康管理指南：从饮食、运动、作息到工作环境的全方位建议。饮食建议包括均衡三餐和健康加餐；运动强调碎片化活动与规律锻炼结合；作息管理提倡7-8小时睡眠和科学午休；心理健康需注重压力调节；工作环境要符合人体工学。建议定期体检，将健康视为提升工作效率的重要投资。通过系统规划，可有效延长职业寿命，提高编程效率。]]></description><category></category></item><item><title><![CDATA[kill -9 关闭java应用时SpringApplicationShutdownHook 这种钩子任务还会执行吗]]></title><link>https://blog.csdn.net/AlbertFly/article/details/149974109</link><guid>https://blog.csdn.net/AlbertFly/article/details/149974109</guid><author>AlbertFly</author><pubDate>Wed, 06 Aug 2025 16:08:09 +0800</pubDate><description><![CDATA[摘要：使用kill-9（SIGKILL）终止Java进程会跳过所有ShutdownHook，包括SpringApplicationShutdownHook，导致资源无法正常释放。建议生产环境优先使用kill（SIGTERM）触发优雅关闭，仅当进程无响应时再结合超时机制使用kill-9。关键影响包括数据库连接泄漏、文件锁定等问题，可通过定期持久化状态、外部健康检查等方案增强健壮性。容器化环境可配置preStop钩子预留处理时间。]]></description><category></category></item><item><title><![CDATA[spring cloud gateway前面是否必须要有个nginx]]></title><link>https://blog.csdn.net/AlbertFly/article/details/147337951</link><guid>https://blog.csdn.net/AlbertFly/article/details/147337951</guid><author>AlbertFly</author><pubDate>Fri, 18 Apr 2025 17:54:32 +0800</pubDate><description><![CDATA[在 **"客户端 → Nginx (前置限流) → Spring Cloud Gateway → 微服务(Sentinel 熔断+限流)"** 的架构中，**Spring Cloud Gateway 前面并不强制要求必须有 Nginx**，是否需要取决于具体场景。graph LR A[客户端] --> B[Nginx] B -->|限流+SSL| C[Spring Cloud Gateway] C -->|路由+过滤| D[微服务集群] D --> E[Sentinel]]]></description><category></category></item><item><title><![CDATA[AI Agent 快速理解]]></title><link>https://blog.csdn.net/AlbertFly/article/details/145822232</link><guid>https://blog.csdn.net/AlbertFly/article/details/145822232</guid><author>AlbertFly</author><pubDate>Mon, 24 Feb 2025 10:23:59 +0800</pubDate><description><![CDATA[**虚拟助手**：如Siri、Google Assistant和Alexa，帮助用户管理日程、查询信息等。- **无人驾驶汽车**：通过感知周围环境、规划路径和控制车辆行驶，实现安全高效的驾驶体验。- **高频交易（HFT）**：使用AI代理实时分析市场数据，自动执行买卖操作。- **量化投资**：根据历史数据和市场趋势预测未来的市场动向，优化投资组合。- **非玩家角色（NPC）**：在游戏中扮演智能角色，增加互动性和真实感。- **个性化治疗**：根据患者的基因组数据和病史，制定个性化的治疗方案。]]></description><category></category></item><item><title><![CDATA[AI大模型时代,程序员如何保持竞争力]]></title><link>https://blog.csdn.net/AlbertFly/article/details/143484961</link><guid>https://blog.csdn.net/AlbertFly/article/details/143484961</guid><author>AlbertFly</author><pubDate>Mon, 04 Nov 2024 15:02:47 +0800</pubDate><description><![CDATA[在AI时代和大模型时代，程序员面临着新的挑战和机遇。为了适应这种变化，程序员需要不断学习和提升自己的技能，同时也要调整自己的思维方式和工作方法。希望这些建议能帮助你在AI时代和大模型时代保持竞争力，不断成长和发展。如果有更具体的问题或需要进一步的指导，请随时提问。1.1 学习AI基础知识。3.1 了解业务领域。5.1 解决复杂问题。6.1 定位发展方向。]]></description><category></category></item><item><title><![CDATA[Java 21 新特性来支持并发编程]]></title><link>https://blog.csdn.net/AlbertFly/article/details/143434300</link><guid>https://blog.csdn.net/AlbertFly/article/details/143434300</guid><author>AlbertFly</author><pubDate>Fri, 01 Nov 2024 16:05:38 +0800</pubDate><description><![CDATA[**高效**：可以在单个操作系统线程上运行多个虚拟线程，减少上下文切换的开销。- **更多的组合操作**：增加了新的组合操作方法，使得异步任务的组合更加方便。- **更好的负载均衡**：改进了任务的分发和窃取机制，减少了空闲线程的数量。- **更好的错误处理**：改进了异常处理机制，使得错误传播更加清晰。- **更低的延迟**：优化了任务的调度算法，减少了任务的等待时间。- **资源管理**：自动管理任务的生命周期，确保资源的正确释放。- **任务分组**：将并发任务分组，以便统一管理和取消。]]></description><category></category></item><item><title><![CDATA[mybatis插入uuid主键同时返回主键id]]></title><link>https://blog.csdn.net/AlbertFly/article/details/139167299</link><guid>https://blog.csdn.net/AlbertFly/article/details/139167299</guid><author>AlbertFly</author><pubDate>Fri, 24 May 2024 10:05:50 +0800</pubDate><description><![CDATA[mybatis插入uuid主键同时返回主键id, 经过尝试下面是一种可以实现的方式 ]]></description><category></category></item><item><title><![CDATA[Nginx配置Https]]></title><link>https://blog.csdn.net/AlbertFly/article/details/137684864</link><guid>https://blog.csdn.net/AlbertFly/article/details/137684864</guid><author>AlbertFly</author><pubDate>Fri, 12 Apr 2024 16:09:31 +0800</pubDate><description><![CDATA[前置条件：在配置https之前请确保下面的步骤已经完成已经安装nginx并且通过http可以正常访问拥有ssl证书，没有的可以去阿里购买或者免费申请一年如果以上条件都满足了，接下来开始配置https。]]></description><category></category></item><item><title><![CDATA[PgSQL优化的100种方法]]></title><link>https://blog.csdn.net/AlbertFly/article/details/102922015</link><guid>https://blog.csdn.net/AlbertFly/article/details/102922015</guid><author>AlbertFly</author><pubDate>Thu, 13 Jul 2023 15:31:43 +0800</pubDate><description><![CDATA[100. 采用用于反向推理的深度神经网络，在给定一些查询数据的情况下，预测数据库中的热点区域和瓶颈，并自动采用最佳的优化操作。37. 对于需要阻塞或等待的情况，请使用允许高并发处理的技术、批处理或其他合适的方法来处理它们。46. 提高数据的可用性和可靠性，例如，通过使用 RAID 或较小的页面大小来优化页面缓存。68. 对于大型查询，使用较低的扫描率和约束设置来优化查询来限制磁盘和内存的交替重排。85. 为需要处理的数据选择正确的数据类型，并使用合适的数据格式来提高性能。]]></description><category></category></item><item><title><![CDATA[utc时间转毫秒]]></title><link>https://blog.csdn.net/AlbertFly/article/details/127948529</link><guid>https://blog.csdn.net/AlbertFly/article/details/127948529</guid><author>AlbertFly</author><pubDate>Sun, 20 Nov 2022 14:14:56 +0800</pubDate><description><![CDATA[utc时间转换毫秒]]></description><category></category></item><item><title><![CDATA[MySQL 慢 SQL 可能原因汇总]]></title><link>https://blog.csdn.net/AlbertFly/article/details/126591323</link><guid>https://blog.csdn.net/AlbertFly/article/details/126591323</guid><author>AlbertFly</author><pubDate>Mon, 29 Aug 2022 19:39:40 +0800</pubDate><description><![CDATA[有些时候，我们需要偏移一定量数据之后，获取某些数据，就很容易想到用limit，但是，如果偏移量很大时，就会发现SQL执行起来非常非常慢了，因为，偏移量会分页读取到buffpool中，数据量大，占用的buffpool空间就会大，而这个空间大小是配置的，一般不会很大，所以，导致了慢sql。这就会出现，一个事务，做变更，没有结束，后面的所有事务操作就得等待，如果此时又有多个事务在排队等待，当前一事务操作结束，等待的事务就会竞争抢锁，这种‘你不仁，我不义’，一旦发生，SQL的性能就会很慢了。...]]></description><category></category></item><item><title><![CDATA[java并行的执行两个任务]]></title><link>https://blog.csdn.net/AlbertFly/article/details/119041615</link><guid>https://blog.csdn.net/AlbertFly/article/details/119041615</guid><author>AlbertFly</author><pubDate>Fri, 23 Jul 2021 18:07:52 +0800</pubDate><description><![CDATA[java并行的执行两个任务 ，每个任务又包含多个小任务，下面是一种代码实践的成果






 ExecutorService executor1 = Executors.newSingleThreadExecutor();
        Map&lt;String, Integer&gt; tenantIdNumMap = new HashMap&lt;&gt;();
        FutureTask&lt;Map&lt;String, Integer&gt;&gt; future1 =
     ]]></description><category></category></item><item><title><![CDATA[java map遍历使用并行流]]></title><link>https://blog.csdn.net/AlbertFly/article/details/114988618</link><guid>https://blog.csdn.net/AlbertFly/article/details/114988618</guid><author>AlbertFly</author><pubDate>Thu, 18 Mar 2021 19:39:02 +0800</pubDate><description><![CDATA[// 新方法  map使用并行流   //使用entrySet 的key的list 然后当成list遍历



projectGitMap.entrySet().parallelStream().forEach(entry-&gt;{
    List&lt;Integer&gt; list = projectGitMap.get(entry.getKey()); //entry.getKey() = name
    list.parallelStream().forEach(projectId -...]]></description><category></category></item><item><title><![CDATA[一文搞懂蓝绿发布、灰度发布和滚动发布]]></title><link>https://blog.csdn.net/AlbertFly/article/details/113699707</link><guid>https://blog.csdn.net/AlbertFly/article/details/113699707</guid><author>AlbertFly</author><pubDate>Fri, 05 Feb 2021 16:50:57 +0800</pubDate><description><![CDATA[应用程序升级面临最大挑战是新旧业务切换，将软件从测试的最后阶段带到生产环境，同时要保证系统不间断提供服务。

长期以来，业务升级渐渐形成了几个发布策略：蓝绿发布、灰度发布和滚动发布，目的是尽可能避免因发布导致的流量丢失或服务不可用问题。

一、 蓝绿发布
项目逻辑上分为AB组，在项目系统时，首先把A组从负载均衡中摘除，进行新版本的部署。B组仍然继续提供服务。





当A组升级完毕，负载均衡重新接入A组，再把B组从负载列表中摘除，进行新版本的部署。A组重新提供服务。




最后，B组也升级完成，负载均.]]></description><category></category></item><item><title><![CDATA[SonarQube 跳过指定检查]]></title><link>https://blog.csdn.net/AlbertFly/article/details/110492312</link><guid>https://blog.csdn.net/AlbertFly/article/details/110492312</guid><author>AlbertFly</author><pubDate>Wed, 02 Dec 2020 17:32:54 +0800</pubDate><description><![CDATA[ps 我使用了下面的项目过滤来做 因为一个项目会有多个分支 只想对部分项目来做过滤某些规则 这个规则还是有些重要的

环境

演示环境参考前边的文章SonarQube 扫描 Java 代码

步骤

我们已经扫描一个 Java 项目
有 6 个 BUG
点开其中一个 BUG，点击详情，我们可以看到规则描述及规则编号。java:S2259-可能发生空指针异常。如何忽略这个异常呢？
目前我找到三种方式：

全局忽略
	项目忽略
	配置文件
全局忽略

最高级配置，所有的扫描将跳过指定的规则。
找到...]]></description><category></category></item><item><title><![CDATA[Eureka、Zookeeper和Consul 的区别]]></title><link>https://blog.csdn.net/AlbertFly/article/details/109334294</link><guid>https://blog.csdn.net/AlbertFly/article/details/109334294</guid><author>AlbertFly</author><pubDate>Wed, 28 Oct 2020 15:49:52 +0800</pubDate><description><![CDATA[主要区别的话，看CAP选择，大部分注册中心，就是在这个定理去选择的，具体怎么选择，看下文

CAP定理：指的是在一个分布式系统中，Consistency（一致性）、 Availability（可用性）、Partition tolerance（分区容错性），三者不可同时获得。

一致性（C）：在分布式系统中的所有数据备份，在同一时刻是否同样的值。（所有节点在同一时间的数据完全一致，越多节点，数据同步越耗时）

可用性（A）：负载过大后，集群整体是否还能响应客户端的读写请求。（服务一直可用，而且是正常响应...]]></description><category></category></item><item><title><![CDATA[Linux中drwxr-xr-x.的意思和权限]]></title><link>https://blog.csdn.net/AlbertFly/article/details/108886206</link><guid>https://blog.csdn.net/AlbertFly/article/details/108886206</guid><author>AlbertFly</author><pubDate>Wed, 30 Sep 2020 15:39:38 +0800</pubDate><description><![CDATA[读(read)，写(write)，执行r(recute)简写即为(r,w,x),亦可用数字来(4,2,1)表示





举例：如果某文件权限为7则代表可读、可写、可执行(4+2+1).

若权限为6(4+2)则代表可读、可写。

权限为5代表可读(4)和可执行(1).

权限为3代表可写(2)和可执行(1)。





下图中文件所有者(属主)为root，所有组(属组)为root，文件名为install.log,权限为的第一个减号“-”代表的是文件类型：

-：普通文件，d:目录文件，l:链接文件，...]]></description><category></category></item><item><title><![CDATA[Linux的chown和chmod授权详解]]></title><link>https://blog.csdn.net/AlbertFly/article/details/108882756</link><guid>https://blog.csdn.net/AlbertFly/article/details/108882756</guid><author>AlbertFly</author><pubDate>Wed, 30 Sep 2020 13:24:01 +0800</pubDate><description><![CDATA[chown修改文件和文件夹的用户和用户组属性
1。要修改文件hh.c的所有者.修改为sakia的这个用户所有
chownsakiahh.c
这样就把hh.c的用户访问权限应用到sakia作为所有者
2。将目录/tmp/sco这个目录的所有者和组改为sakia和组net
chown-Rsakia:net/tmp/sco
chmod修改文件和文件夹读写执行属性
1。把hh.c文件修改为可写可读可执行
chmod777hh.c
要修改某目录下所有的文件属性为可写可读可执行...]]></description><category></category></item><item><title><![CDATA[Lua 语言环境安装]]></title><link>https://blog.csdn.net/AlbertFly/article/details/108651418</link><guid>https://blog.csdn.net/AlbertFly/article/details/108651418</guid><author>AlbertFly</author><pubDate>Thu, 17 Sep 2020 19:43:47 +0800</pubDate><description><![CDATA[Linux 系统上安装（本文使用了5.3.0版本进行安装：）

curl -R -O http://www.lua.org/ftp/lua-5.3.0.tar.gz
tar zxf lua-5.3.0.tar.gz
cd lua-5.3.0
make linux test
make install



如果安装的时候报错: lua.c:80:31:fatalerror:readline/readline.h:Nosuchfileordirectory





解决方法: 缺少...]]></description><category></category></item><item><title><![CDATA[Gitlab加入LDAP认证]]></title><link>https://blog.csdn.net/AlbertFly/article/details/106946041</link><guid>https://blog.csdn.net/AlbertFly/article/details/106946041</guid><author>AlbertFly</author><pubDate>Wed, 24 Jun 2020 16:08:40 +0800</pubDate><description><![CDATA[1- 修改/etc/gitlab/gitlab.rb

我的配置：


gitlab_rails['ldap_enabled'] = true

###! **remember to close this block with 'EOS' below**
gitlab_rails['ldap_servers'] = YAML.load &lt;&lt;-'EOS'
   main: # 'main' is the GitLab 'provider ID' of this LDAP server
     l]]></description><category></category></item></channel></rss>