缘由
rabbitMQ消息中间件的简单使用。
基于削峰原理,设计一个抢豆子的小游戏,服务器中设有100颗豆子,所有用户均可进行抢夺,用户的请求被缓存放入消息队列中,豆子被抢光或游戏时间耗尽,游戏结束。
效果图
步骤
1.下载安装并开启rabbitMQ
2.springboot集成rabbitMQ并配置参数
3.本例中以redis作为共享内存放置数据
4.配置监听器,在程序开启后,初始化游戏信息(豆子数量、用户成绩、游戏状态)
5.设置定时任务,每十分钟开启游戏,在第9分钟时,关闭游戏。
6.编写生产者,即抢豆子的请求。
7.编写消费者,即维护redis中的游戏数据
代码
/**
* 自定义rabbitMQ的配置
* 设置队列,交换机
* /
@Configuration
@EnableRabbit
public class RabbitMQConfig {
public static final String DIRECT_EXCHANGE_1 = "DIRECT_EXCHANGE_1"; // 自定义交换机
public static final String QUEUE_1 = "QUEUE_1"; // 自定义队列
public static final String ROUTING_KEY_1 = "ROUTING_KEY_1"; // 自定义路由
@Value("${spring.rabbitmq.host}")
private String host;
@Value("${spring.rabbitmq.port}")
private int port;
@Value("${spring.rabbitmq.username}")
private String username;
@Value("${spring.rabbitmq.password}")
private String password;
//建立一个连接容器,类型数据库的连接池
@Bean
public ConnectionFactory connectionFactory() {
CachingConnectionFactory connectionFactory = new CachingConnectionFactory(host,port);
connectionFactory.setUsername(username);
connectionFactory.setPassword(password);