当前位置: 首页 > news >正文

如何用文件传输协议登陆网站北京做网站公司排名浩森宇特

如何用文件传输协议登陆网站,北京做网站公司排名浩森宇特,网站权重如何合理分配,大连工业大学图书馆文章目录一、介绍发布订阅采用观察者模式 实现,包含三个核心组件:工作流程Redis发布订阅与消息队列(RocketMQ)对比二、配置监听器、及消费者处理类配置监听器消费者处理类三、生产者处理类一、介绍 Redis的发布订阅拥有简单高效的实时消息传递&#xff…

文章目录

    • 一、介绍
      • 发布订阅采用观察者模式 实现,包含三个核心组件:
      • 工作流程
      • Redis发布订阅与消息队列(RocketMQ)对比
    • 二、配置监听器、及消费者处理类
      • 配置监听器
      • 消费者处理类
    • 三、生产者处理类

一、介绍

Redis的发布订阅拥有简单高效的实时消息传递,但需要根据业务需求权衡其持久化和可靠性限制,对于特殊场景,特殊业务还是建议使用专业的MQ, 如Kafka、RocketMQ。

发布订阅采用观察者模式 实现,包含三个核心组件:

(1)发布者(Publisher)

  • 通过 PUBLISH 命令向指定频道发送消息
  • 消息格式: PUBLISH channel_name message
  • 返回值为当前订阅该频道的客户端数量

(2)订阅者(Subscriber)

  • 通过 SUBSCRIBE 命令订阅一个或多个频道
  • 可以订阅模式: PSUBSCRIBE pattern*
  • 订阅后进入阻塞状态,等待消息到达

(3)频道(Channel)

  • 消息传递的通道
  • 支持通配符模式匹配
  • 无需预先创建,自动管理

工作流程

1.订阅阶段 :客户端执行 SUBSCRIBE channel1 channel2
2.发布阶段 :另一个客户端执行 PUBLISH channel1 “Hello”
3.消息传递 :Redis服务器将消息推送给所有订阅channel1的客户端
4.接收处理 :订阅者收到消息格式: [“message”, “channel1”, “Hello”]

Redis发布订阅与消息队列(RocketMQ)对比

特性Redis Pub/Sub消息队列(RocketMQ)
消息持久化❌ 不支持(内存存储)✅ 支持(磁盘持久化)
离线消息消息丢失消息保存
重启恢复消息丢失消息恢复
消息可靠性❌ 无ACK机制✅ 支持ACK确认机制
事务消息❌ 不支持✅ 支持分布式事务
消息顺序⚡ 基本保证✅ 严格顺序保证
消费者模式📢 广播模式🔄 集群消费+广播模式
重试机制❌ 不支持✅ 支持自动重试
死信队列❌ 不支持✅ 支持死信队列
消息轨迹❌ 不支持✅ 支持完整消息轨迹
部署复杂度⭐ 非常简单⭐⭐ 中等复杂

Redis发布订阅虽然有许多不足,但对一些业务小,要求不高的场景使用起来也是非常香的



二、配置监听器、及消费者处理类

引入redis依赖,及配置这里就不展示了

配置监听器

/*** @author Redis消息监听配置*/
@RequiredArgsConstructor
@Component
public class RedisMessageListenerConfig {private final RedisMessageListenerContainer container;private final MessageSubscriber messageSubscriber;/*** 默认是已经初始化了RedisMessageListenerContainer*/@PostConstructpublic void init(){//这里默认是已经初始化了RedisMessageListenerContainer, 在此处仅仅添加消息监听器即可//如果没有初始化RedisMessageListenerContainer,则需要先初始化,再添加消息监听器container.addMessageListener((message, pattern) -> messageSubscriber.messageHandler1(message), new ChannelTopic("Channel_Topic_1"));container.addMessageListener((message, pattern) -> messageSubscriber.messageHandler2(message), new ChannelTopic("Channel_Topic_2"));}/*** 没有初始化RedisMessageListenerContainer,则需要先初始化*/// @Bean// public RedisMessageListenerContainer redisMessageListenerContainer(RedisConnectionFactory connectionFactory) {//     //自行进行配置,这里不再说明//     RedisMessageListenerContainer initContainer = new RedisMessageListenerContainer();//     initContainer.setConnectionFactory();//     ...//     initContainer.addMessageListener((message, pattern) -> messageSubscriber.messageHandler1(message), new ChannelTopic("Channel_Topic_1"));//     initContainer.addMessageListener((message, pattern) -> messageSubscriber.messageHandler2(message), new ChannelTopic("Channel_Topic_2"));//     return initContainer;// }
}

消费者处理类

@Slf4j
@RequiredArgsConstructor
@Component
public class MessageSubscriber {public void messageHandler1(Message message) {log.info("消息通知, message:{}",message);try {String string = message.toString();//添加业务逻辑} catch (Exception e) {log.error("消费者异常,message:{} error:{},",message,e.getMessage());}}public void messageHandler2(Message message) {log.info("消息通知, message:{}",message);try {String string = message.toString();//添加业务逻辑} catch (Exception e) {log.error("消费者异常,message:{} error:{},",message,e.getMessage());}}
}



三、生产者处理类

@Service
@RequiredArgsConstructor
public class InterviewSessionServiceImpl {private final RedisTemplate<String, Object> redisTemplate;public void message1(String message1) {redisTemplate.convertAndSend("Channel_Topic_1", message1);}public void message2(String message2) {redisTemplate.convertAndSend("Channel_Topic_2", message2);}
}
http://www.dtcms.com/a/619307.html

相关文章:

  • 数学分析简明教程——4.3
  • 技术支持 金华网站建设青羊网站建设
  • 科技广告公司网站模板电商设计接单
  • 作业333333
  • 【复习408】操作系统存储器管理浅析
  • seata的JacksonUndoLogParser回滚SerialArray类型的序列化和反序列化解析
  • 在线做初中题网站网站设计昆明
  • Python中lambda函数与def函数的区别及应用场景
  • 找工作的一些感悟——前端小菜的成长
  • 注册好了域名怎么开始做网站网站建设 网站推广
  • 晋江企业网站建设在深圳注册一个公司需要多少钱
  • “开源AI智能名片链动2+1模式S2B2C商城小程序”在县级市场的应用与挑战分析
  • 大气网站案例网站制作公司备案
  • 16.触摸屏驱动
  • Q7: 在区块链上创建随机数有哪些挑战?
  • 宿城网站建设大连市网站制作电话
  • 做a视频网站有哪些系统优化的目的和意义
  • 网站开发外快如何优化网站打开速度
  • 城市配送联盟平台技术架构深度解析:赋能小 B 端全场景高效配送
  • 公司网站定制自己做网页怎么赚钱
  • 济南网站建设公司按需定制wordpress赞 踩插件
  • 建外贸网站的wordpress源码书籍
  • 织梦网站源码找一品资源企业网站建设费怎么账务处理
  • 如何在国外建设网站百度站长平台验证网站
  • 考研408--组成原理--day3--数字电路(补)加减乘除
  • 深圳企业网站建设推广服务wordpress extra script
  • Python的自述
  • OceanBase 常见异情况汇总
  • 江门网站建设方案开发wordpress云建站教程
  • 14.3 行业应用案例:金融、医疗、教育领域的定制化实践