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

互联网 网站设计江苏省宿迁市建设局网站

互联网 网站设计,江苏省宿迁市建设局网站,做马来西亚生意的网站,电白区住房和城乡建设局网站生产者-消息丢失 之 场景分析 生产者消息丢失的场景消息无法到达RabbitMQ连接断开信道关闭 RabbitMQ无法将消息入队交换机不存在无匹配队列 消息过期丢失消息丢失场景对比 生产者消息丢失的场景 生产者发送消息的流程如下#xff1a;首先生产者和RabbitMQ服务器建立连接… 生产者-消息丢失 之 场景分析 生产者消息丢失的场景消息无法到达RabbitMQ连接断开信道关闭 RabbitMQ无法将消息入队交换机不存在无匹配队列 消息过期丢失消息丢失场景对比 生产者消息丢失的场景 生产者发送消息的流程如下首先生产者和RabbitMQ服务器建立连接然后创建信道通过信道发送消息给RabbitMQ服务器RabbitMQ服务器接收到消息后交由交换机进行消息存储交换机根据不同策略将消息路由到指定队列中。在此过程中可能会存在以下消息丢失的场景 在发送消息的过程中生产者和RabbitMQ服务连接断开。在发送消息的过程中信道关闭RabbitMQ接收到消息后但是无法匹配到合适的交换机进行消息处理交换机接收到消息后无法将消息按照相关策略路由到指定队列中消息存放到队列中但是一致没有消费者消费并且消息存放时间超过了设置的过期时间消息被过期丢失 按照上述消息丢失场景可以划分为三种情况消息无法到达RabbitMQ、RabbitMQ无法将消息存放的队列中、消息过期丢失 消息无法到达RabbitMQ 上述已经分析了消息无法从生产者发送给你RabbitMQ的两种情况分别是连接端口和信道关闭。 连接断开 测试方法生产者重复发送消息在消息发送的过程中将RabbitMQ服务停止。 测试结果生产者提示异常 Exception in thread “main” com.rabbitmq.client.AlreadyClosedException: connection is already closed due to connection error; 通过上述测试内容不难发现如果连接断开则生产者将在消息发送的过程中提示异常因此可以通过捕获异常的方式进行消息存储避免消息丢失。 信道关闭 测试方法生产者重复发送消息开启一个线程在一段时间后将信道关闭。 测试结果生产者提示异常 Exception in thread “main” com.rabbitmq.client.AlreadyClosedException: channel is already closed due to clean channel shutdown; protocol method: #methodchannel.close(reply-code200, reply-textOK, class-id0, method-id0) 通过上述测试内容发现信道关闭和连接断开类似生产者都能接收到异常信息。本测试也可以侧面说明信道是非线程安全的不建议去在不同线程间使用相同信道。由于信道是逻辑连接因此信道关闭后可以通过连接再次创建信道。 RabbitMQ无法将消息入队 这种消息丢失的场景是指消息被RabbitMQ接收到了因此针对生产者而言消息已经成功发送了。单论消息发送的职责生产者已经完成了但是不可否认的情况话RabbiMQ合法的接收到消息后已经可能存在消息丢失的情况例如处理该消息的交换机不存在消息无法按照规则路由到相关队列中。 交换机不存在 测试方法消息发送的过程中写一个不存在的路由名称。 测试结果生产者提示异常 Exception in thread “main” com.rabbitmq.client.AlreadyClosedException: channel is already closed due to channel error; protocol method: #methodchannel.close(reply-code404, reply-textNOT_FOUND - no exchange ‘sample_exchangetest’ in vhost ‘/’, class-id60, method-id40) 虽然生产者提示了该条异常但是这是在第二次发送信息时提示的异常也就是说在第一次给不存在的交换机发送消息时生产者并未抛出异常当第一条消息发送后由于不存在相关交换机则生产者将将该发送消息的信道关闭进而在第二次通过该信道发送消息的时候提示信道关闭异常. 无匹配队列 测试方法消息发送的过程中设置一个无法匹配到队列的路由键。 测试结果生产者持续发送消息未出现异常但是队列中不存在生产者发送的消息。   当消息按照设置规则发送给相关交换机但是交换机无法根据消息携带的路由键匹配到队列中此时消息无法存储到队列中消费者无法消费这些消息。值得注意的是无匹配队列这种情况发生时并未向上述几种情况生产者出现异常提示。所以无论生产者无法通过异常监听的方式得知消息发送失败为此RabbitMQ提供了mandatory属性配置实现当队列不可达时生产者接收到返回消息。mandatory详细讲解见后文。 消息过期丢失 测试方法在发送消息的过程中设置过期时间。队列无消费者监听等到消息过期。 测试结果消息过期丢失生产者无法获取消息丢失事件。 消息的过期时间设置见 RabbitMQ 过期时间TTL 消息丢失场景对比 场景是否发生异常连接断开是信道关闭是交换机不存在是无匹配队列否消息过期丢失否
http://www.sadfv.cn/news/53903/

相关文章:

  • 网站制作视频课程做网站原型图是用什么软件
  • 阳泉网站建设哪家便宜杭州高端设计网站建设
  • 广州大型网站建设vi品牌设计
  • 专业网站建设服务公司哪家好网站关键词排名提高
  • 怎么查看网站用的php还是.net家庭宽带做网站
  • 重庆定制网站建设地址重庆妇科医院排名最好的医院
  • 互联网广告管理暂行办法百度网站排名搜行者seo
  • 网站制作的流程包括哪些有网站了小程序怎么做
  • 制作网站问题和解决方法wordpress手机端编辑
  • 网站建设视频大学学校网站建设方案
  • 新老网站做301跳转seo常用工具
  • 免费软文网站安徽专业做网站的公司
  • 邢台做网站哪家便宜wordpress 女性主题
  • 网站后台口令网站互动化
  • wordpress 弹出表单百度seo在线优化
  • google如何提交网站wordpress 插件哪里
  • dw做网站怎么加视频网站建设与运营 好考吗
  • 枣强网站建设培训学校seo产品是什么意思
  • 中国网站设计公司软件工程师报考条件
  • 怎样在建设部网站查资质证书wordpress博客破解主题
  • 网站建设与管理的策划书龙岗做企业网站
  • 建网站怎么分类wordpress近义词搜索
  • 成都家具网站建设做网页的软件w
  • 名聚优品一家只做正品的网站20个排版漂亮的网页设计
  • 企业网站建立wordpress仿知乎社区
  • 商业网站开发 流程文山文山市网站建设
  • 自己做的网站网页滑动不北京工程建设有限公司
  • 网站备份查询仿站能被百度收录吗
  • 国内最大网站制作公司本地网站模板修改
  • 网站制作 北京jpress 和wordpress