Serverless 应用引擎云数据库Redis 社区版6.0, 不支持这种消息语法吗?本地没问题,部署到SAE,就接收不到消息。redisTemplate.convertAndSend(topic, xxx)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您描述的问题,本地环境可以正常运行 redisTemplate.convertAndSend(topic, xxx)
,但在部署到 Serverless 应用引擎(SAE)后无法接收到消息。以下是可能的原因及解决方案:
SAE 应用与云数据库 Redis 社区版之间的网络连通性可能是问题的根源。请确认以下内容:
Redis 社区版 6.0 支持 Pub/Sub 消息功能,但可能存在以下配置问题:
虽然本地环境可以正常运行,但部署到 SAE 后可能会因环境差异导致问题。请检查以下内容:
redisTemplate
的配置正确,包括 Redis 连接信息(如 host、port、password 等)。spring:
redis:
host: <Redis内网地址>
port: 6379
password: <Redis密码>
lettuce:
pool:
max-active: 8
max-idle: 8
min-idle: 0
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>2.1.4.RELEASE</version>
</dependency>
如果上述配置均无误,但仍无法接收消息,请通过日志排查问题:
daemon off;
error_log /dev/stdout info;
http {
access_log /dev/stdout;
}
redisTemplate.convertAndSend(topic, xxx)
是 Spring Data Redis 提供的标准方法,理论上与 Redis 社区版 6.0 兼容。如果仍然存在问题,建议尝试直接使用 Redis 客户端工具(如 Jedis 或 Lettuce)发送消息,验证是否为 Spring 层面的问题。请按照以下步骤逐一排查问题: 1. 确认 SAE 应用与 Redis 实例的网络连通性,并正确配置白名单。 2. 检查 Redis 实例的 Pub/Sub 功能是否启用。 3. 确保 SAE 应用中的 Redis 配置和依赖版本正确。 4. 查看实时日志和文件日志,定位具体错误信息。
如果问题仍未解决,请联系阿里云技术支持,提供详细的日志和配置信息以进一步排查。