前言
上一篇讲到了工厂类和工厂类对应的使用。本篇则讲到了mq和redis的整合。在mysql负载不过来过多请求的时候,我们需要缓存,这时候就是redis登场的时候了。以及我们的请求需要削峰,降低请求压力。就需要mq,我们本地接入的是rocketmq
rocketmq和redis的docker安装可以考察我之前的代码
参考博客:
redis:https://www.cnblogs.com/L-Wirepuller/p/11150742.html
rocketmq:https://juejin.im/post/5d4639b15188255d691bccce
redis
yml
# Redis服务器地址
redis:
host: 127.0.0.1
# Redis服务器连接端口
port: 6379
# Redis服务器连接密码(默认为空)
password: password
timeout: 30000
# 连接池最大连接数(使用负值表示没有限制)
maxTotal: 30
# 连接池中的最大空闲连接
maxIdle: 10
numTestsPerEvictionRun: 1024
timeBetweenEvictionRunsMillis: 30000
minEvictableIdleTimeMillis: 1800000
softMinEvictableIdleTimeMillis: 10000
# 连接池最大阻塞等待时间(使用负值表示没有限制)
maxWaitMillis: 1500
testOnBorrow: true
testWhileIdle: true
blockWhenExhausted: false
JmxEnabled: false
redisConfig
@Configuration
public class RedisConfig {
@Value("${redis.host}")
private String host;
@Value("${redis.port}")
private int port;
@Value("${redis.password}")
private String password;
@Value("${redis.timeout}")
private int timeout;
@Value("${redis.maxIdle}")
private int maxIdle;
@Value("${redis.maxWaitMillis}")
private int maxWaitMillis;
@Value("${redis.blockWhenExhausted}")
private Boolean blockWhenExhausted;
@Value("${redis.JmxEnabled}")
private Boolean JmxEnabled;
@Bean
public JedisPool jedisPoolFactory() {
System.out.println("JedisPool注入开始...");
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxIdle(maxIdle);
jedisPoolConfig.setMaxWaitMillis(maxWaitMillis);
// 连接耗尽时是否阻塞, false报异常,true阻塞直到超时, 默认true
jedisPoolConfig.setBlockWhenExhausted(blockWhenExhausted);
// 是否启用pool的jmx管理功能, 默认true
jedisPoolConfig.setJmxEnabled(JmxEnabled);
JedisPool jedisPool = new JedisPool(jedisPoolConfig, host, port, timeout, password);
System.out.println("JedisPool注入成功...");
return jedisPool;
}
}
使用方法就是创建JedisPool jedisPool类,调用jedis的api即可对redis进行相关的操作了
reocketmq
直接使用我首页的博文即可。本人也是照抄,对比了网上很多很多的spring boot接入rocketmq的文章,这篇无论是使用方法还是配置方法,都是比较简单易懂又考虑完善的。
pom文件
<!-- redis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
<!-- rocketmq -->
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>4.3.0</version>
</dependency>
结尾
这样我们的项目就有个更多的选择,又有了redis做缓存,也有了mq的消息发送功能
github:https://github.com/alex9567/SpringCloudScaffold