返回顶部
首页 > 资讯 > 精选 >SpringCloud分布式微服务b2b2c电子商务(十二)在springboot中用redis实现消息队列
  • 466
分享到

SpringCloud分布式微服务b2b2c电子商务(十二)在springboot中用redis实现消息队列

2023-06-05 03:06:36 466人浏览 独家记忆
摘要

准备阶段安装redis,可参考我的另一篇文章java 1.8Maven 3.0idea环境依赖创建一个新的SpringBoot工程,了解SpringCloud架构可以加求求:三五三六二四七二五九。在其pom文件,加入spring-boot-

准备阶段

安装redis,可参考我的另一篇文章

java 1.8

Maven 3.0

idea

环境依赖

创建一个新的SpringBoot工程,了解SpringCloud架构可以加求求:三五三六二四七二五九。在其pom文件,加入spring-boot-starter-data-Redis依赖:

<dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-data-redis</artifactId>        </dependency>

创建一个消息接收者
REcevier类,它是一个普通的类,需要注入到springboot中。

public class Receiver {    private static final Logger LOGGER = LoggerFactory.getLogger(Receiver.class);    private CountDownLatch latch;    @Autowired    public Receiver(CountDownLatch latch) {        this.latch = latch;    }    public void receiveMessage(String message) {        LOGGER.info("Received <" + message + ">");        latch.countDown();    }}

注入消息接收者

@Bean    Receiver receiver(CountDownLatch latch) {        return new Receiver(latch);    }    @Bean    CountDownLatch latch() {        return new CountDownLatch(1);    }    @Bean    StringRedisTemplate template(RedisConnectionFactory connectionFactory) {        return new StringRedisTemplate(connectionFactory);    }

注入消息监听容器
在spring data redis中,利用redis发送一条消息和接受一条消息,需要三样东西:

一个连接工厂
一个消息监听容器
Redis template
上述1、3步已经完成,所以只需注入消息监听容器即可:

@Bean    RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory,                                            MessageListenerAdapter listenerAdapter) {        RedisMessageListenerContainer container = new RedisMessageListenerContainer();        container.setConnectionFactory(connectionFactory);        container.addMessageListener(listenerAdapter, new PatternTopic("chat"));        return container;    }    @Bean    MessageListenerAdapter listenerAdapter(Receiver receiver) {        return new MessageListenerAdapter(receiver, "receiveMessage");    }

测试
在springboot入口的main方法:

public static void main(String[] args) throws Exception{        ApplicationContext ctx =  SpringApplication.run(SpringbootRedisApplication.class, args);        StringRedisTemplate template = ctx.getBean(StringRedisTemplate.class);        CountDownLatch latch = ctx.getBean(CountDownLatch.class);        LOGGER.info("Sending message...");        template.convertAndSend("chat", "Hello from Redis!");        latch.await();        System.exit(0);    }

--结束END--

本文标题: SpringCloud分布式微服务b2b2c电子商务(十二)在springboot中用redis实现消息队列

本文链接: https://lsjlt.com/news/241197.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作