从零搭建springboot服务03-redis消息订阅
愿历尽千帆,归来仍是少年
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消息订阅的更多相关文章
- 从零搭建springboot服务01-初始搭建、内嵌swagger
愿历尽千帆,归来仍是少年 1.基础springBoot框架 编辑工具:IDEA.jdk1.8.tomcat8.maven3.3.9 编码格式:UTF-8 参考文献:https://www.cnblog ...
- 从零搭建springboot服务02-内嵌持久层框架Mybatis
愿历尽千帆,归来仍是少年 内嵌持久层框架Mybatis 1.所需依赖 <!-- Mysql驱动包 --> <dependency> <groupId>mysql&l ...
- python+mitmproxy抓包过滤+redis消息订阅+websocket实时消息发送,日志实时输出到web界面
本实例实现需求 在游戏SDK测试中,经常需要测试游戏中SDK的埋点日志是否接入正确.本实例通过抓包(客户端http/https 请求)来判定埋点日志是是否接入正确. 实现细节:使用django项目,后 ...
- Redis之Redis消息订阅发布简介
概念: Redis消息订阅发布是进程间的一种消息通信模式,发送者pub发送消息,订阅者sub接收消息. 使用须知: 需要先订阅后发布,才能接收到消息.在订阅时,相当于创建了可供发布的频道. 案例: ( ...
- 二十四 Redis消息订阅&事务&持久化
Redis数据类型: Redis控制5种数据类型:String,list,hash,set,sorted-set 添加数据,删除数据,获取数据,查看有多少个元素,判断元素是否存在 key通用操作 JR ...
- dubbo入门教程-从零搭建dubbo服务
[原创 转载请注明出处] 本文是学习了dubbo之后自己手动写的,比较通俗,很多都是自己学习之后的理解,写的过程中没有参考任何文章. 另外dubbo也有官方文档,但是比较官方,也可以多看看dubbo的 ...
- Redis教程03——Redis 发布/订阅(Pub/Sub)
Pub/Sub 订阅,取消订阅和发布实现了发布/订阅消息范式(引自wikipedia),发送者(发布者)不是计划发送消息给特定的接收者(订阅者).而是发布的消息分到不同的频道,不需要知道什么样的订阅者 ...
- Redis消息订阅与发布
监听器的创建 package com.sogou.baike.testimport.testSubscribe; import redis.clients.jedis.JedisPubSub; pub ...
- Go游戏服务端框架从零搭建(一)— 架构设计
五邑隐侠,本名关健昌,10年游戏生涯,现隐居海边. 本教程以Go语言分区游戏服务端框架搭建为例. Go语言是Google开发的一种静态强类型.编译型.并发型.具有垃圾回收功能的编程语言.语法上近似C语 ...
随机推荐
- python基础之赋值运算
之前的文章说明了变量的三大组成部分,详细说明了变量名与变量值,但是对于赋值这一块介绍相对较少,今天就来对这一部分进行补充,除了egon老湿所讲之外,本喵还参阅了<python3-cookbook ...
- 如何使用Topshelf与.NET泛型主机建立Windows服务
1 前置阅读 在阅读本文章之前,你可以先阅读: Topshelf一个用于使用.NET构建Windows服务框架 2 使用 2.1 创建应用程序 首先,创建一个新的控制台应用程序并从nuget获取Top ...
- java学习(更新中)
class Test { public static void main(String[] args) { System.out.println("Hello World!"); ...
- 第2课:操作系统网络配置【DevOps基础培训】
第2课:操作系统网络配置 --DevOps基础培训 1. DNS配置 1.1 什么是DNS? 域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务.它作为将域名和IP ...
- 201871030108-冯永萍 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告
实验三 软件工程结对项目 项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/2018CST 这个作业要求链接 https://www.cnblogs ...
- Java(65-80)【方法、数组】
1.方法的三种调用:单独调用.打印调用.赋值调用 单独调用就是调用方法并不进行输出: 打印调用就是对方法进行输出 赋值调用就是将结果赋值给一个变量再进行输出 void是没有返回值的,因此只能进行赋值单 ...
- Mysql之读写分离架构-Atlas
Atlas介绍 1.png Atlas是由 Qihoo 360, Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目. 它是在mysql-proxy 0.8.2版本的基础上, ...
- C#搞个跨平台的桌面NES游戏模拟器
支持Windows,Mac,Linux NES模拟器内核源码来自 https://github.com/colinvella/EmuNes 他这边的源码功能很完善了的,支持视频录制,手柄,金 ...
- Sublime Text 3.1 3170 / 3176 注册码(附降级与禁止更新方法)
3.1 3176 可用注册码 127.0.0.1 www.sublimetext.com 127.0.0.1 license.sublimehq.com ----- BEGIN LICENSE --- ...
- hdu1255 扫描线,矩形重叠面积(两次以上)
题意: 给你n个矩形,然后问你这n个矩形所组成的画面中被覆盖至少两次的面积有多大. 思路: 和1542差距并不是很大,大体上还是离散化+线段树扫面线,不同的地方就是这个题目要求 ...