RabbitMQ
消息中间件实际应用
小老犇
谁能帮我处理一下这个异常:NoGirlFriendException
展开
-
不得不说的事,RabbitMQ常见问题之重复消费!
场景 首先明确一点,消息队列有重试机制。 比如文档服务消费表单服务的消息,但是在生成word文档的过程中发生了错误,文档服务就会重新要求表单服务再发一次消息,即重试机制。 现在表单服务重新发了一条消息,问题就来了,文档服务由于之前有问题,现在消费这条信息没毛病,但是ES服务没有问题啊,它再消费一遍,不就多了一条数据吗? 解决方法 简单来讲,就是做个判断。 若处理过,则不做操作;若未处理,则操作。 判断逻辑写法: 取你项目中业务唯一ID,进行判断,我的项目中唯一ID是表单ID,当监听器监听到消息后,首先判断一原创 2020-10-26 16:09:07 · 1029 阅读 · 1 评论 -
RabbitMQ服务安装教程
官网: http://www.rabbitmq.com/ 官方教程:http://www.rabbitmq.com/getstarted.html RabbitMQ使用Erlang语言写的,实现了AMQP协议,安装RabbitMQ之前,需要先装Erlang环境。 Erlang OTP 22,可以从网上下载,也可以私信我,我直接发给你。 下载后,一路下一步,就行了,然后配置环境变量。 下面安装RabbitMQ服务 https://www.rabbitmq.com/install-windows.html原创 2020-10-25 22:16:36 · 749 阅读 · 1 评论 -
天啊,一张图让你完全理解RabbitMQ是个什么东西!
MQ定义 消息队列,强调消息和队列。 消息:生产者完成某一项业务,发送消息给交换器,代表,我完成了这个功能,接下来,该干什么,消费者自己来认领这个消息,然后消费。 队列:交换器将消息分发给各个消费者时,根据绑定的key,到自己的队列,然后按照先进先出原则由消费者进行消费。 工作原理 使用消息队列,重点在于合理的让消费者消费,消费者通过监听器,时刻监听着路由过来的消息,然后执行相应的操作。 工作流程 工作流程分为两个部分,一个是消息投递,一个是消费消息。 消息投递 1、生产者和broker建立TCP连接原创 2020-10-19 17:00:43 · 632 阅读 · 2 评论 -
RabbitMQ应用场景及业务需求
业务需求 表单点击保存后,将表单及附件内容导入ES,并将表单及附件生成word文件,保存到服务器。 导入ES库,是要对系统中所有文件进行全文检索。 生成word,提前将文件保存到服务器,避免用户预览时,再进行渲染页面,填充数据,减少用户等待时间。 问题 在进行该业务的时候,发现点击保存RT过程太长,达到0.5s,可以感觉到明显的请求响应过程,之后就考虑使用消息队列对这个过程进行优化。 解决方法 当表单点击保存后,将保存成功这个信息放入队列中,ES服务和模板服务时刻监听着属于它们的信息,监听到之后,进行消原创 2020-10-19 14:30:53 · 724 阅读 · 1 评论