<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Salmonの博客</title>
    <link>https://blog.salmonedu.ltd/</link>
    <description>欢迎访问，本站致力于分享与解决技术问题~</description>
    <language>zh-CN</language>
    <lastBuildDate>Thu, 05 Nov 2026 10:59:49 +0800</lastBuildDate>
    <generator>blog-vue</generator>
    <atom:link href="https://blog.salmonedu.ltd/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Docker 命令总结</title>
      <link>https://blog.salmonedu.ltd/articles/396</link>
      <guid isPermaLink="true">https://blog.salmonedu.ltd/articles/396</guid>
      <pubDate>Tue, 14 May 2024 01:17:45 +0800</pubDate>
      <category>运维</category>
      <description>前言 Docker 是一种容器化平台，允许开发人员将应用程序及其所有依赖项打包到一个称为 Docker 镜像的可移植容器中。这使得应用程序可以在任何地方以相同的方式运行，而无需担心环境差异或依赖问题。 然而平常不常用的命令我会容易忘记，相信大多数人也如此，故在此做个记录。 Docker容器命令 1. 列出所有运行中的容器 此命令将列出所有当前正在运行的容器，…</description>
    </item>
    <item>
      <title>常用的Linux命令记录</title>
      <link>https://blog.salmonedu.ltd/articles/351</link>
      <guid isPermaLink="true">https://blog.salmonedu.ltd/articles/351</guid>
      <pubDate>Fri, 22 Mar 2024 13:16:14 +0800</pubDate>
      <category>运维</category>
      <description>1、基本命令 sh uname -m 显示机器的处理器架构 uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作系统信息 arch 显示机器的处理器架构 uname -…</description>
    </item>
    <item>
      <title>Mac 如何安装 EasyConnect</title>
      <link>https://blog.salmonedu.ltd/articles/588</link>
      <guid isPermaLink="true">https://blog.salmonedu.ltd/articles/588</guid>
      <pubDate>Tue, 20 Oct 2026 14:42:37 +0800</pubDate>
      <category>开发环境</category>
      <description>访问：，，会弹出下载对应的客户端，然后我们点击下载即可 ⚠️注意：Mac 端要使用 Safari 浏览器进行下载</description>
    </item>
    <item>
      <title>线上 Java CPU 飙高怎么定位？从 `top`、线程 ID 到 `jstack` 的完整实战</title>
      <link>https://blog.salmonedu.ltd/articles/587</link>
      <guid isPermaLink="true">https://blog.salmonedu.ltd/articles/587</guid>
      <pubDate>Mon, 14 Sep 2026 23:20:18 +0800</pubDate>
      <category>面试</category>
      <description>线上服务 CPU 突然飙高时，第一反应往往是登录机器执行 。但仅仅找到高 CPU 的 Java 进程还不够，真正关键的是继续定位到： 1. 哪个 Java 进程占用了 CPU； 2. 该进程中的哪个线程在持续消耗 CPU； 3. 该线程对应哪段 Java 代码； 4. 到底是业务死循环、频繁 GC、锁竞争，还是 native 层问题。 本文以 Linux 生…</description>
    </item>
    <item>
      <title>WebRTC 局域网文件直传实战：信令、数据通道与移动端踩坑</title>
      <link>https://blog.salmonedu.ltd/articles/586</link>
      <guid isPermaLink="true">https://blog.salmonedu.ltd/articles/586</guid>
      <pubDate>Wed, 19 Aug 2026 01:18:27 +0800</pubDate>
      <category>后端</category>
      <description>很多文件传输需求看起来很简单：电脑选一个文件，手机扫码确认，然后直接收下。 真正开始实现后会发现，文件要不要经过服务器、两个设备如何找到彼此、二维码里该放什么、如何避免别人抢先加入、手机浏览器为什么突然报错，都是必须提前想清楚的问题。 本文以“同一 Wi-Fi 或手机热点下，浏览器之间传文件”的业务场景为例，完整拆解一个可靠的实现方案。目标很明确：服务端只负…</description>
    </item>
    <item>
      <title>记录小程序性能优化与 Skyline 迁移实战：从 1.65MB 到 0.87MB，从拖影到丝滑</title>
      <link>https://blog.salmonedu.ltd/articles/585</link>
      <guid isPermaLink="true">https://blog.salmonedu.ltd/articles/585</guid>
      <pubDate>Sat, 08 Aug 2026 13:22:38 +0800</pubDate>
      <category>前端</category>
      <description>一、缘起 最近在优化一个记录类小程序（记宠物日常、记宝宝成长那种）。打开项目一看，有几个不吐不快的问题： - 主包源码 1.65MB（加上 miniprogram npm 总共 3.5MB+），随时可能触发官方 2MB 主包限制的红线 - 首页 JS 一启动就要解析 592KB 的 echarts，就为了画一条折线图 - 上下滑动首页，那个折线图一直在拖影（…</description>
    </item>
    <item>
      <title>多端统一登录与跨业务授权实践 Demo：从登录页设计到博客账号打通工具站</title>
      <link>https://blog.salmonedu.ltd/articles/584</link>
      <guid isPermaLink="true">https://blog.salmonedu.ltd/articles/584</guid>
      <pubDate>Mon, 03 Aug 2026 00:27:23 +0800</pubDate>
      <category>后端</category>
      <description>前言 最开始，系统的登录入口分散在多个地方： - 小程序使用微信登录； - 工具网站使用邮箱密码或邮箱验证码登录； - 博客服务有自己的一套登录态； - 宠物服务和壁纸服务还会使用不同的业务标识； - 用户在不同端之间无法自然地切换身份。 这种设计在早期可以快速上线，但随着业务增加，会出现几个明显问题： 1. 用户需要重复注册多个账号； 2. 同一个用户在不…</description>
    </item>
    <item>
      <title>从零搭建轻量级微服务监控：主机、Docker、JVM、Go 与 Nginx QPS</title>
      <link>https://blog.salmonedu.ltd/articles/583</link>
      <guid isPermaLink="true">https://blog.salmonedu.ltd/articles/583</guid>
      <pubDate>Fri, 31 Jul 2026 00:12:09 +0800</pubDate>
      <category>后端</category>
      <description>前言：先看得见，再谈调优 两台小服务器、十几个微服务，不一定要先上 Prometheus + Grafana。本文记录我如何用一个 Go 监控服务，把主机资源、Docker 容器、Java JVM、Go runtime、Nginx 访问量和基础告警串成一套轻量监控方案，并解释每个指标究竟是怎么采到的。 做微服务一段时间后，很容易遇到这样的场景： - 服务没挂…</description>
    </item>
    <item>
      <title>Error: tunneling socket could not be established, cause=connect ECONNREFUSED 127.0.0.1:7890</title>
      <link>https://blog.salmonedu.ltd/articles/582</link>
      <guid isPermaLink="true">https://blog.salmonedu.ltd/articles/582</guid>
      <pubDate>Thu, 30 Jul 2026 14:47:59 +0800</pubDate>
      <category>前端</category>
      <description>问题 微信小程序开发者工具编译报错： 解决 打开工具-设置-代理设置-不使用任何代理，勾选后直连网络 重新打开项目，成功。</description>
    </item>
    <item>
      <title>Redis Key 没有设置过期时间，为什么数据还是丢了？</title>
      <link>https://blog.salmonedu.ltd/articles/581</link>
      <guid isPermaLink="true">https://blog.salmonedu.ltd/articles/581</guid>
      <pubDate>Wed, 29 Jul 2026 14:45:12 +0800</pubDate>
      <category>后端</category>
      <description>前言 最近遇到一个问题：系统里缓存了公众号菜单数据，Redis key 没有设置过期时间，但某一天菜单缓存却不见了。 第一反应很容易是： 没有设置过期时间，Redis 怎么会把数据删掉？ 但这个理解其实不完整。 Redis 的过期时间只代表这个 key 不会因为 TTL 到期而被自动删除。它不代表这个 key 永久可靠，也不代表 Redis 重启、内存不足、…</description>
    </item>
    <item>
      <title>从 ThreadLocal 到 TTL，再到 WebFlux Context：一次讲透 Java 线程上下文传递</title>
      <link>https://blog.salmonedu.ltd/articles/580</link>
      <guid isPermaLink="true">https://blog.salmonedu.ltd/articles/580</guid>
      <pubDate>Thu, 23 Jul 2026 23:51:20 +0800</pubDate>
      <category>后端</category>
      <description>前言 在 Java 后端开发里， 是一个非常常见的工具。 你可能在这些场景里见过它： - 保存当前登录用户 - 保存 traceId / requestId - 保存租户 ID - 保存数据源路由 key - 保存链路追踪上下文 - 保存本地事务上下文 - 保存灰度、语言、时区等请求级信息 看起来它很好用： 业务代码不用层层传参，就能拿到当前请求上下文。 但…</description>
    </item>
    <item>
      <title>内网环境下如何给云桌面批量部署 Python 环境和依赖</title>
      <link>https://blog.salmonedu.ltd/articles/579</link>
      <guid isPermaLink="true">https://blog.salmonedu.ltd/articles/579</guid>
      <pubDate>Tue, 21 Jul 2026 22:13:35 +0800</pubDate>
      <category>开发环境</category>
      <description>在一些内网办公环境中，经常会遇到这样一个任务：需要在一批云桌面电脑上安装 Python 运行环境，并且还要安装项目依赖包。但这些电脑没有任何外网访问能力，不能直接使用 从公网下载依赖。 如果这些电脑还是瘦客户机接入的云桌面，情况会更典型：用户实际操作的是云桌面系统，本地终端只是访问入口。这个时候，我们真正需要处理的是云桌面里的操作系统环境，而不是瘦客户机本身…</description>
    </item>
    <item>
      <title>从语音通话、视频通话到视频直播：一篇讲透 RTC、WebRTC、P2P、SFU 和实时音视频架构</title>
      <link>https://blog.salmonedu.ltd/articles/578</link>
      <guid isPermaLink="true">https://blog.salmonedu.ltd/articles/578</guid>
      <pubDate>Tue, 21 Jul 2026 15:16:03 +0800</pubDate>
      <category>后端</category>
      <description>很多人第一次接触实时音视频，会同时看到一串词：RTC、WebRTC、P2P、SFU、STUN、TURN、ICE、RTP、RTCP、SRTP、Opus、H264、VP8、AV1、RTMP、HLS、CDN。 这些词如果孤立看，很容易越看越乱。因为它们并不是同一层的东西。有的是领域概念，有的是浏览器标准，有的是网络穿透方案，有的是传输协议，有的是编码器，有的是服务…</description>
    </item>
    <item>
      <title>Jenkins 通用搭建与发布流水线教程：从本地 Docker 到生产服务器</title>
      <link>https://blog.salmonedu.ltd/articles/577</link>
      <guid isPermaLink="true">https://blog.salmonedu.ltd/articles/577</guid>
      <pubDate>Fri, 17 Jul 2026 15:53:11 +0800</pubDate>
      <category>运维</category>
      <description>一、为什么要用 Jenkins 很多个人项目或中小团队项目，最开始都是在 IDEA 里开发、手动打包、手动登录服务器、手动重启 Docker。这个方式前期很快，但服务一多就会出现几个问题： - 打包命令容易忘。 - 上传路径容易错。 - 哪次发布了什么版本不清楚。 - 生产服务器密码或私钥容易到处散落。 - 后续想接 Docker Compose、K8s、回…</description>
    </item>
    <item>
      <title>Mac Flutter FVM 多版本管理安装与常用指令</title>
      <link>https://blog.salmonedu.ltd/articles/576</link>
      <guid isPermaLink="true">https://blog.salmonedu.ltd/articles/576</guid>
      <pubDate>Fri, 17 Jul 2026 00:37:29 +0800</pubDate>
      <category>前端</category>
      <description>记录一次在 Mac 上安装 Flutter 和 FVM 的过程，顺手整理一下 FVM 的常用命令、环境变量配置、国内网络镜像，以及 和 的区别。 一、FVM 是什么 FVM 全称是 Flutter Version Management，用来管理多个 Flutter SDK 版本。 为什么需要它？ - 不同项目可能依赖不同 Flutter 版本。 - Flut…</description>
    </item>
    <item>
      <title>从 0 到 1 拆解一个 Netty IM 长连接服务：网关路由、在线路由与消息投递设计</title>
      <link>https://blog.salmonedu.ltd/articles/574</link>
      <guid isPermaLink="true">https://blog.salmonedu.ltd/articles/574</guid>
      <pubDate>Thu, 16 Jul 2026 01:00:57 +0800</pubDate>
      <category>后端</category>
      <description>前言 很多项目一开始做“实时消息”时，最容易把问题想简单：前端连一个 WebSocket，后端收到消息再转发出去，好像就完成了一个 IM 服务。 但真正落到微服务架构里，问题会立刻变多： 1. 客户端长连接应该接到哪里？ 2. 网关怎么转发 WebSocket？ 3. 一个用户在多端在线时，服务端怎么找到他的连接？ 4. 多台 IM 服务实例部署后，消息服务…</description>
    </item>
    <item>
      <title>Git 受保护分支回退实践：从强制回滚到新增回退提交</title>
      <link>https://blog.salmonedu.ltd/articles/573</link>
      <guid isPermaLink="true">https://blog.salmonedu.ltd/articles/573</guid>
      <pubDate>Mon, 13 Jul 2026 20:01:35 +0800</pubDate>
      <category>运维</category>
      <description>前言 在多人协作项目中，线上分支经常会设置为受保护分支，例如 、、 等。 这些分支通常禁止普通开发人员直接 ，目的是避免误删历史、覆盖他人提交，保障发布链路安全。 这次遇到的问题是： - 服务后续提交中引入了错误代码 - 希望把代码恢复到一个稳定提交节点 - 稳定提交为： 一开始我们希望“直接回到这个版本，后面的提交都不要了”。 但在实际操作中发现， 是 G…</description>
    </item>
    <item>
      <title>Mac 安装 ESP-IDF 开发环境，并使用 idf.py 烧录 ESP32 项目</title>
      <link>https://blog.salmonedu.ltd/articles/572</link>
      <guid isPermaLink="true">https://blog.salmonedu.ltd/articles/572</guid>
      <pubDate>Sat, 11 Jul 2026 12:54:28 +0800</pubDate>
      <category>嵌入式</category>
      <description>最近开始学习 ESP32，我手上是一块小智 AI 相关的开发板，商家说板型是 ，芯片是 ESP32-S3。 在烧录和编译固件时，需要用到 命令，但我本地一开始并没有这个命令。 查了一下， 并不是项目自带的工具，而是 ESP-IDF 开发环境的一部分。 ESP-IDF 是乐鑫官方提供的 ESP32 开发框架，负责项目配置、编译、烧录、串口监控等操作。 本文记录…</description>
    </item>
    <item>
      <title>学习小智 ESP32-S3-DevKitC-1（GOOUUU 果云版 42 IO引脚）</title>
      <link>https://blog.salmonedu.ltd/articles/571</link>
      <guid isPermaLink="true">https://blog.salmonedu.ltd/articles/571</guid>
      <pubDate>Fri, 10 Jul 2026 21:18:36 +0800</pubDate>
      <category>嵌入式</category>
      <description>前言 最近在折腾一块 ESP32-S3 开发板，用来运行小智 AI 固件。我的开发板型号是： ESP32-S3-DevKitC-1 开发板版本 2，GOOUUU 果云版，42 IO 引脚 这篇文章记录一下从接线、烧录固件、配网到语音测试的完整过程。中间我在 Mac 上使用网页烧录时遇到了一些问题，最后改用本地 烧录解决了。 参考文档： 1、https://m…</description>
    </item>
    <item>
      <title>向量数据库入门：常见方案、Docker Compose 部署、Java/Go 接入与 RAG 实战</title>
      <link>https://blog.salmonedu.ltd/articles/570</link>
      <guid isPermaLink="true">https://blog.salmonedu.ltd/articles/570</guid>
      <pubDate>Mon, 29 Jun 2026 23:54:17 +0800</pubDate>
      <category>大模型</category>
      <description>面向想学习 AI 应用开发、RAG、Agent、知识库系统的后端同学。本文会从概念讲起，对比常见向量数据库方案，给出 Mac 和 Linux/Ubuntu 上的 Docker Compose 部署方式，并介绍 Java、Go 如何入门接入。 1. 为什么 AI 应用需要向量数据库 传统数据库擅长回答确定性问题： - 的文章是哪篇？ - 某个用户发布过多少篇文…</description>
    </item>
    <item>
      <title>Docker 镜像堆积导致服务器磁盘满的一次排查记录</title>
      <link>https://blog.salmonedu.ltd/articles/568</link>
      <guid isPermaLink="true">https://blog.salmonedu.ltd/articles/568</guid>
      <pubDate>Fri, 26 Jun 2026 11:47:00 +0800</pubDate>
      <category>运维</category>
      <description>最近线上后台保存配置时遇到一个问题：接口返回失败，但 MySQL 更新逻辑看起来已经执行到了最后。查看服务日志后，发现异常并不是业务数据问题，而是 Redis 报错： 继续查看服务器磁盘： 发现根分区已经满了： 也就是说，根因是服务器磁盘被占满，Redis 无法写入 RDB/AOF 持久化文件，于是触发了 Redis 的保护机制，禁止写命令。业务保存配置后需…</description>
    </item>
    <item>
      <title>ICP备案教程</title>
      <link>https://blog.salmonedu.ltd/articles/567</link>
      <guid isPermaLink="true">https://blog.salmonedu.ltd/articles/567</guid>
      <pubDate>Mon, 22 Jun 2026 11:35:03 +0800</pubDate>
      <category>运维</category>
      <description>前言 最近新注册了一个域名，准备部署自己的新项目。由于服务器放在中国大陆节点，所以按照规定需要先完成 ICP 备案。 平时经常会有朋友咨询我： - 域名备案到底难不难？ - 个人备案需要准备什么资料？ - 备案一般多久能通过？ - 阿里云备案流程是怎样的？ - 已经备案过的主体怎么新增域名？ 实际上，现在的备案流程已经比前几年简单很多了。阿里云提供了完整的在…</description>
    </item>
    <item>
      <title>一次 Excel 导入导出引发的 OOM 排查与优化记录</title>
      <link>https://blog.salmonedu.ltd/articles/566</link>
      <guid isPermaLink="true">https://blog.salmonedu.ltd/articles/566</guid>
      <pubDate>Fri, 12 Jun 2026 17:11:24 +0800</pubDate>
      <category>后端</category>
      <description>一、问题背景 最近在排查服务内存上涨和 OOM 风险时，发现部分批量导入、错误 Excel 回写相关代码存在较明显的内存和资源管理问题。 业务场景大致是： 1. 用户上传 Excel 文件。 2. 系统读取 Excel 内容并转换成业务 DTO。 3. 校验每一行数据。 4. 如果存在错误，则基于原始 Excel 生成一份“错误报告 Excel”。 5. 将…</description>
    </item>
    <item>
      <title>Certbot 通配证书自动续期后同步更新阿里云 OSS 自定义域名 HTTPS 证书</title>
      <link>https://blog.salmonedu.ltd/articles/565</link>
      <guid isPermaLink="true">https://blog.salmonedu.ltd/articles/565</guid>
      <pubDate>Thu, 21 May 2026 21:34:20 +0800</pubDate>
      <category>运维</category>
      <description>我目前使用 Certbot 申请了 通配证书，证书文件在服务器上的路径是： 站点本身通过 OpenResty 使用这个证书没有问题，但 OSS 自定义域名 也需要绑定 HTTPS 证书。否则访问类似下面的资源时，浏览器会提示证书异常： 这里需要注意：OpenResty 使用了新证书，不代表 OSS 自定义域名也自动更新了证书。OSS 的自定义域名证书需要单独…</description>
    </item>
    <item>
      <title>Mac外接显示器异常处理</title>
      <link>https://blog.salmonedu.ltd/articles/564</link>
      <guid isPermaLink="true">https://blog.salmonedu.ltd/articles/564</guid>
      <pubDate>Wed, 20 May 2026 14:10:50 +0800</pubDate>
      <category>开发环境</category>
      <description>首先确保外接显示器无故障，连接电源后，外接显示器能按出菜单，基本就是正常没问题的 1、先尝试【重启大法】，如果无效，接着尝试下面终端代码 2、终止 WindowServer 进程：防止 WindowServer 使用 文件，造成有缓存，输入以下代码： 3、删除系统显示器配置文件，输入以下代码： 完成后，重启电脑即可</description>
    </item>
    <item>
      <title>记一次微信小程序 textarea 聚焦后页面上下抖动的排查过程</title>
      <link>https://blog.salmonedu.ltd/articles/563</link>
      <guid isPermaLink="true">https://blog.salmonedu.ltd/articles/563</guid>
      <pubDate>Thu, 14 May 2026 01:31:51 +0800</pubDate>
      <category>前端</category>
      <description>问题背景：页面内容较多时，点击描述输入框出现明显抖动 这次问题发生在宠物小程序的添加记录页面： 页面用于添加宠物记录，内容比较多，尤其是“外出活动记录”这类表单，上面会有地图、活动按钮、轨迹控制区，下面还有描述输入框、媒体上传、隐私设置和底部保存按钮。 实际手机端表现是： 1. 页面内容较多，描述输入框经常只露出一部分。 2. 点击描述输入框时，页面会先自己…</description>
    </item>
    <item>
      <title>PHP 安装与版本切换教程（Mac + Windows）</title>
      <link>https://blog.salmonedu.ltd/articles/562</link>
      <guid isPermaLink="true">https://blog.salmonedu.ltd/articles/562</guid>
      <pubDate>Mon, 27 Apr 2026 15:53:40 +0800</pubDate>
      <category>开发环境</category>
      <description>前言 最近准备做一个基于 PHP 的 Web 项目，顺手把自己在 macOS 和 Windows 上安装 PHP、管理多版本、切换版本的过程整理成一篇教程。 这篇文章适合下面几类同学： - 刚接触 PHP，不知道怎么安装 - 电脑里已经有 PHP，但版本不合适 - 想同时维护多个 PHP 版本 - 想像 、、 一样管理 PHP 版本 本文会分成两条路线： -…</description>
    </item>
    <item>
      <title>阿里云百炼大模型申请与使用教程（超详细）</title>
      <link>https://blog.salmonedu.ltd/articles/561</link>
      <guid isPermaLink="true">https://blog.salmonedu.ltd/articles/561</guid>
      <pubDate>Tue, 21 Apr 2026 17:57:56 +0800</pubDate>
      <category>后端</category>
      <description>一、什么是阿里云百炼？ 阿里云百炼（Bailian）是一个一站式大模型开发平台（MaaS），集成了通义千问（Qwen）等多种模型，支持： - 文本生成 / 对话 - 多模态（图像、语音等） - Agent（智能体）开发 - OpenAI 兼容 API 调用 简单理解：👉 就是国内版“可商用 + 更好接入”的大模型平台 而且重点是： 👉 新用户开通就送免费 T…</description>
    </item>
    <item>
      <title>记一次 RabbitMQ 消息已入队但 Spring Boot 消费者始终未消费的排查过程</title>
      <link>https://blog.salmonedu.ltd/articles/560</link>
      <guid isPermaLink="true">https://blog.salmonedu.ltd/articles/560</guid>
      <pubDate>Sun, 19 Apr 2026 03:25:07 +0800</pubDate>
      <category>后端</category>
      <description>问题现象：接口提示发送成功，但邮箱始终收不到验证码 这次排查的问题来自认证服务 的邮箱验证码发送功能。 前端调用发送验证码接口后，接口返回一切正常： 服务端日志里也能看到生产者执行成功： 但是邮箱就是收不到邮件，而且消费者侧没有任何消费日志。 第一直觉很容易怀疑： 1. QQ 邮箱授权码错了 2. RabbitMQ 没启动 3. 交换机</description>
    </item>
    <item>
      <title>记一次 QQ 邮箱 SMTP 鉴权失败与频率限制的排查优化</title>
      <link>https://blog.salmonedu.ltd/articles/559</link>
      <guid isPermaLink="true">https://blog.salmonedu.ltd/articles/559</guid>
      <pubDate>Sun, 19 Apr 2026 03:23:50 +0800</pubDate>
      <category>后端</category>
      <description>问题现象：验证码接口成功，但邮箱发送并不稳定 在认证服务 中，邮箱验证码链路已经打通： 1. 前端调用发送验证码接口 2. 后端将验证码消息投递到 RabbitMQ 3. 消费者异步发送邮件 最开始排查时，接口返回一直是成功的： 生产者日志也显示一切正常： 但是消费者真正发邮件时，却出现了如下异常： log java.lang.R</description>
    </item>
  </channel>
</rss>
