仿B站项目基于RocketMQ+Redis实现动态提醒

RocketMQ一些知识地址:RocketMQ架构、工作流程以及安装_rocketmq工作流程-CSDN博客

RocketMQ架构:Producer(生产者),Comsumer(消费者),NameSpace,Broker

动态提醒功能:动态发布者--平台--动态订阅者

实现流程

1. pom导入Mq以及Redis依赖

2. 新建RocketMQ配置类:类中可以创建生产者以及消费者

3. 配置文件中加入rocketmq端口等相关配置

4. RocketMQ工具类:实现同步、异步发送消息方法。(参数:生产者,消息)

5. 用户发布动态功能接口:

        1. 向数据库中插入动态

         2. 向MQ发布消息,(引入应用上下文用于获得配置类中新增的生产者和消费者)

        3. 新建Message

        4. 用工具类中同步发送消息方法。

6. 消费用户动态

        1. 更改RocketMQ配置类中的消费者功能,使其接收到消息以后对消息进行处理

        2. 获取当前消息(动态)的发布者(userid),根据userid获取其粉丝列表,对每个粉丝发送动态信息(存入redis中)。

7. 查询订阅动态

        从redis中取出上一步存入的动态信息:

        String listStr = redisTemplate.opsForValue().get(key);

一些注意事项

1. RocketMQ工具类中,同步发送消息方法通常会在发送消息后立即等待Broker的响应,而异步发送消息方法则会立即返回,由一个单独的线程去处理Broker返回的响应。
2. 

在RocketMQ中,NameSpace主要用于多租户的环境,名称可以类比于一个租户或者一个业务单元。对于一些大型系统,可能需要部署多个RocketMQ集群,每个集群都有自己的一套Topic、生产者、消费者等资源,这时候如果能在每个集群前加个前缀(即NameSpace),可以方便地区分和管理这些资源。

然后在Redis中,类似的概念是Database。一台Redis服务器可以有多个Database,每个Database都像一个独立的Redis服务器。也可以通过Database来隔离不同应用的数据,但是这个方式在实际开发中很少用到。

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值