# spring-boot-redis-pub-sub **Repository Path**: edwarder/spring-boot-redis-pub-sub ## Basic Information - **Project Name**: spring-boot-redis-pub-sub - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-05-20 - **Last Updated**: 2022-11-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # spring-boot-redis-pub-sub #### 介绍 {Springboot+Redis实现消息队列(发布订阅模式)} #### 软件架构 Springboot+Redis #### 安装教程 1. 配置yml ```yaml spring: http: encoding: charset: UTF-8 enabled: true force: true redis: database: 0 host: 192.168.100.125 port: 6379 password: # 密码(默认为空) timeout: 10000 # 连接超时时长(毫秒) lettuce: shutdown-timeout: 100ms # 关闭超时时间 默认 100ms pool: # lettuce 连接池 max-active: 8 # 连接池最大连接数 默认 8(-1 :表示没有限制) max-wait: 60000ms # 连接池最大阻塞等待时间 默认-1ms (-1 :表示没有限制) 这里设置1分钟 max-idle: 8 # 最大空闲连接 默认 8 min-idle: 0 # 最小空闲连接 默认 0 ``` 注意修改redis配置即可,host修改自己redis服务端的ip #### 使用说明 1. 运行SpringBootRedisPubSubApplication类启动项目 2. 访问 浏览器访问:http://localhost:9988/pub 观看控制台输出: ```java 2021-05-21 09:19:31.944 INFO 12152 --- [nio-9988-exec-1] com.lb.web.PublisherController : Publisher sendes Topic... 2021-05-21 09:19:31.947 INFO 12152 --- [ container-2] com.lb.config.RedisSubReceiver : [开始消费REDIS消息队列userInfo数据...] {"school":"苏州大学","name":"蓝莲花","id":"1001","age":25} 2021-05-21 09:19:31.947 INFO 12152 --- [ container-2] com.lb.config.RedisSubReceiver : [userInfo] : {"school":"苏州大学","name":"蓝莲花","id":"1001","age":25} 2021-05-21 09:19:31.950 INFO 12152 --- [ container-2] com.lb.config.RedisSubReceiver : [消费REDIS消息队列userInfo数据成功.] ``` #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 问题 1. 连接阿里云redis失败 出现如下错误: ```java ERROR o.s.d.redis.listener.RedisMessageListenerContainer - Connection failure occurred. Restarting subscription task after 5000 ms ``` 解决方案: 修改redis.conf文件 ```xml client-output-buffer-limit slave 256mb 64mb 60 这里对是客服端是slave的做限制 256mb 是一个硬性限制,当output-buffer的大小大于256mb之后就会断开连接 64mb 60 是一个软限制,当output-buffer的大小大于64mb并且超过了60秒的时候就会断开连接 ```