愿历尽千帆,归来仍是少年

1.所需依赖

        <!-- Redis依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency> <!--常用工具类 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>

2.配置application.yml文件

# redis配置
redis:
# Redis数据库索引(默认0) 此处db1
database: 1
# redis服务器地址
host: xxx
# Redis服务器连接端口
port: 111
# Redis服务器连接密码(默认为空
password: xxx
# Lettuce 是一个可伸缩线程安全的 Redis 客户端,多个线程可以共享同一个 RedisConnection,它利用优秀 netty NIO 框架来高效地管理多个连接
lettuce:
pool:
# 连接池中的最大空闲连接
max-idle: 80
min-idle: 10
jedis:
pool:
# 连接池最大连接数
max-active: 300
# 连接池中的最大空闲连接
max-idle: 100
# 连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms
# 连接池中的最小空闲连接
min-idle: 0
timeout: 5000ms

3.消息订阅者配置类

/**
* 消息订阅者配置类
*
* @author hxx
* @version 1.0
* @date 2021/5/19 14:34
*/
/*@Configuration用于定义配置类,可替换xml配置文件*/
@Configuration
public class RedisSubscriberConfig { /**
* 创建消息监听容器
*
* @param redisConnectionFactory
* @param reciver1ListenerAdapter
* @param reciver2ListenerAdapter
* @return
*/
@Bean
public RedisMessageListenerContainer getRedisMessageListenerContainer(RedisConnectionFactory redisConnectionFactory,
MessageListenerAdapter reciver1ListenerAdapter, MessageListenerAdapter reciver2ListenerAdapter) {
RedisMessageListenerContainer redisMessageListenerContainer = new RedisMessageListenerContainer();
redisMessageListenerContainer.setConnectionFactory(redisConnectionFactory);
//接受消息的key
redisMessageListenerContainer.addMessageListener(reciver1ListenerAdapter, new PatternTopic("reciver1"));
redisMessageListenerContainer.addMessageListener(reciver2ListenerAdapter, new PatternTopic("reciver2"));
return redisMessageListenerContainer;
} /**
* 消息监听适配器,注入接受消息方法,输入方法名字 反射方法
*
* @param receiver1
* @return
*/
@Bean
public MessageListenerAdapter reciver1ListenerAdapter(Receiver1 receiver1) {
return new MessageListenerAdapter(receiver1, "receiveMessage"); //当没有继承MessageListener时需要写方法名字
} /**
* 消息监听适配器,注入接受消息方法,输入方法名字 反射方法
*
* @param receiver2
* @return
*/
@Bean
public MessageListenerAdapter reciver2ListenerAdapter(Receiver2 receiver2) {
return new MessageListenerAdapter(receiver2, "receiveMessage"); //当没有继承MessageListener时需要写方法名字
} }

4.消费者

/**
* 消费者
*
* @author hxx
* @version 1.0
* @date 2021/5/19 15:01
*/
/*@controller 控制器(注入服务)控制层*/
@Component
public class Receiver1 { private static Logger logger = LogManager.getLogger(Receiver1.class); public void receiveMessage(String message) {
logger.info("收到的mq消息" + message);
} }

5.发送者

    @ApiOperation(value = "测试redis", notes = "测试redis")
@GetMapping(value = "/redis")
public String pubXgame(){
redisTemplate.convertAndSend("reciver1","111111");
logger.info("Publisher sendes reciver1... ");
return "success";
}

从零搭建springboot服务03-redis消息订阅的更多相关文章

  1. 从零搭建springboot服务01-初始搭建、内嵌swagger

    愿历尽千帆,归来仍是少年 1.基础springBoot框架 编辑工具:IDEA.jdk1.8.tomcat8.maven3.3.9 编码格式:UTF-8 参考文献:https://www.cnblog ...

  2. 从零搭建springboot服务02-内嵌持久层框架Mybatis

    愿历尽千帆,归来仍是少年 内嵌持久层框架Mybatis 1.所需依赖 <!-- Mysql驱动包 --> <dependency> <groupId>mysql&l ...

  3. python+mitmproxy抓包过滤+redis消息订阅+websocket实时消息发送,日志实时输出到web界面

    本实例实现需求 在游戏SDK测试中,经常需要测试游戏中SDK的埋点日志是否接入正确.本实例通过抓包(客户端http/https 请求)来判定埋点日志是是否接入正确. 实现细节:使用django项目,后 ...

  4. Redis之Redis消息订阅发布简介

    概念: Redis消息订阅发布是进程间的一种消息通信模式,发送者pub发送消息,订阅者sub接收消息. 使用须知: 需要先订阅后发布,才能接收到消息.在订阅时,相当于创建了可供发布的频道. 案例: ( ...

  5. 二十四 Redis消息订阅&事务&持久化

    Redis数据类型: Redis控制5种数据类型:String,list,hash,set,sorted-set 添加数据,删除数据,获取数据,查看有多少个元素,判断元素是否存在 key通用操作 JR ...

  6. dubbo入门教程-从零搭建dubbo服务

    [原创 转载请注明出处] 本文是学习了dubbo之后自己手动写的,比较通俗,很多都是自己学习之后的理解,写的过程中没有参考任何文章. 另外dubbo也有官方文档,但是比较官方,也可以多看看dubbo的 ...

  7. Redis教程03——Redis 发布/订阅(Pub/Sub)

    Pub/Sub 订阅,取消订阅和发布实现了发布/订阅消息范式(引自wikipedia),发送者(发布者)不是计划发送消息给特定的接收者(订阅者).而是发布的消息分到不同的频道,不需要知道什么样的订阅者 ...

  8. Redis消息订阅与发布

    监听器的创建 package com.sogou.baike.testimport.testSubscribe; import redis.clients.jedis.JedisPubSub; pub ...

  9. Go游戏服务端框架从零搭建(一)— 架构设计

    五邑隐侠,本名关健昌,10年游戏生涯,现隐居海边. 本教程以Go语言分区游戏服务端框架搭建为例. Go语言是Google开发的一种静态强类型.编译型.并发型.具有垃圾回收功能的编程语言.语法上近似C语 ...

随机推荐

  1. 【解决】Could not GET 'https://maven.google.com

    现象 解决方案 1. 由于Google被墙导致的问题 参考 配置阿里云源修改maven的源地址. 2. 由于错误配置代理导致的问题(提示400) 查看工程目录下的gradle.properties和C ...

  2. JMeter自定义采样器插件开发

    JMeter自定义采样器插件开发 目录 JMeter自定义采样器插件开发 1. 简介 2. 需求简介 3.成品展示 成功展示 失败展示 4. 准备开发环境 4.1 准备pom文件 4.2 新建Java ...

  3. pandas(5):数学统计——描述性统计

    Pandas 可以对 Series 与 DataFrame 进行快速的描述性统计,方便快速了解数据的集中趋势和分布差异.源Excel文件descriptive_statistics.xlsx: 一.描 ...

  4. JVM小册(1)------jstat和Parallel GC日志

    JVM小册(1)------jstat和Parallel GC日志 一. 背景 在生产环境中,有时候会遇到OOM的情况,抛开Arthas 等比较成熟的工具以外,我们可以使用java 提供的jatat和 ...

  5. OO第二单元总结——电梯

    在电梯系列的作业中,笔者的整体架构几乎没有发生改变.现介绍如下,对于一个电梯系统,主要的工作步骤就是获取乘客请求.分派请求.执行请求.针对这样的工作模式,笔者设计了Elevator.Uselist两个 ...

  6. Linux启动流程和服务管理(init和systemd)

    目录 一:Linux启动流程 init和Systemd的区别 二:Linux服务管理(service,systemctl) 一:Linux启动流程 Rhel6启动过程: Rhel7启动过程: GRUB ...

  7. Linux中常见的150个命令(干货)

    目录 线上查询及帮助命令 文件和目录操作命令 查看文件和内容处理命令 文件压缩及解压缩命令 信息显示命令 搜索文件命令 进程管理相关命令 用户管理命令 基础网络操作命令 深入网络操作命令 有关磁盘与文 ...

  8. MySQL数据库及注入方法

    目录 MySQL数据库 mysql中比较常用的一些函数: 判断MySQL数据库是否存在SQL注入 MySQL数据库文件结构 MySQL数据库密码破解 MySQL UDF提权 MySQL数据库 MySQ ...

  9. 预防NSA勒索病毒攻击脚本

    预防445端口勒索病毒修复脚本 直接复制下去,创建一个文件,名字随意后缀是.bat,然后双击就可以了(如果提示拒绝访问,就直接右键管理员,尤其是Win8 Win10). :+添加关键注册表以及停掉并且 ...

  10. LeetCode---11. 盛最多水的容器(Java)

    11. 盛最多水的容器 题目地址:https://leetcode-cn.com/problems/container-with-most-water/ 给你 n 个非负整数 a1,a2,...,an ...