衡阳县做淘宝网站建设网站托管服务协议

news/2025/9/22 21:40:30/文章来源:
衡阳县做淘宝网站建设,网站托管服务协议,网络营销是什么职业,龙海市住房和城乡建设局网站1.什么是RabbitMQ RabbitMQ是一个由erlang开发的AMQP#xff08;Advanced Message Queue #xff09;的开源实现。AMQP 的出现其实也是应了广大人民群众的需求#xff0c;虽然在同步消息通讯的世界里有很多公开标准#xff08;如 COBAR的 IIOP #xff0c;或者是 SOAP 等Advanced Message Queue 的开源实现。AMQP 的出现其实也是应了广大人民群众的需求虽然在同步消息通讯的世界里有很多公开标准如 COBAR的 IIOP 或者是 SOAP 等但是在异步消息处理中却不是这样只有大企业有一些商业实现如微软的 MSMQ IBM 的 Websphere MQ 等因此在 2006 年的 6 月Cisco 、Redhat、iMatix 等联合制定了 AMQP 的公开标准。 RabbitMQ是由RabbitMQ Technologies Ltd开发并且提供商业支持的。该公司在2010年4月被SpringSourceVMWare的一个部门收购。在2013年5月被并入Pivotal。其实VMWarePivotal和EMC本质上是一家的。不同的是VMWare是独立上市子公司而Pivotal是整合了EMC的某些资源现在并没有上市。 RabbitMQ的官网是http://www.rabbitmq.com 百度百科amqp协议介绍https://baike.baidu.com/item/AMQP/8354716?fraladdin 注意:RabbitMQ是采用erlang语言开发的所以必须有erlang环境才可以运行 2.为什么要使用MQ 3.常用消息中间件的对比 4.消息队列RabbitMq的五种形式队列 4.1.点对点(简单)的队列 点对点模式一对一消费一个生产者投递消息给队列只能允许有一个消费者进行消费。 注意如果消费集群的话会进行均摊消费。前提是服务器的配置相同。 均摊消费的弊端假如有2台服务器分别为A、B。如果每个消费处理消息的业务时间不相同的情况下可能对消费者处理慢的服务器不公平(服务器压力大)A处理比B处理时间快应该A处理的消息多一些B处理的消息少一些才合理。 队列以先进先出原则进行存放消息集合。生产者投递消息到队列中。 当消费者启动的时候会与队列服务器建立长连接当生产者有消息投递到队列的时候队列会立刻将消息通知给消费者进行消费。 长连接的好处如果是短链接的话每次访问都需要建立连接比较占内存。建立长连接会减少三次握手提高传输速度。 取消息队列与推送消息队列的区别 取消息生产者投递消息到队列中队列服务器缓存消息。这时候当消费者启动的时候消费者会去向队列服务器中获取消息。 推消息当生产者和消费者都启动的时候生产者向队列投递消息这时候队列会将消息推送给消费者。 4.2.工作(公平性)队列模式 公平队列的原理队列服务器向消费者发送消息的时候消费者采用手动应答模式队列服务器必须要收到消费者发送ack结果通知之后才会继续发送下一个消息。 4.3.发布订阅模式 Direct exchange直连交换机是根据消息携带的路由键routing key将消息投递给对应队列的。 发布订阅实现流程生产者投递消息给交换机交换机根据路由策略(routignKey)转发到不同的队列服务器中缓存然后队列服务器在推送消息给消费者进行消费或者消费者从队列服务器中拉取消息进行消费。 发布订阅实现原理一对多。 这个队列模式是消息队列中最重要的队列了其他的都是在它的基础上进行了扩展。 功能实现一个生产者发送消息多个消费者获取消息同样的消息包括一个生产者一个交换机多个队列多个消费者。 思路解读重点理解  1. 一个生产者多个消费者 2. 每一个消费者都有自己的一个队列 3. 生产者没有直接发消息到队列中而是发送到交换机  4. 每个消费者的队列都绑定到交换机上 5. 消息通过交换机到达每个消费者的队列 该模式就是Fanout Exchange扇型交换机将消息路由给绑定到它身上的所有队列 以用户发邮件案例讲解 注意交换机没有存储消息功能如果消息发送没有绑定消费队列的交换机消息则丢失。在消费者没有启动的情况下生产者投递消息到交换机这时候交换机不知道把消息转发给哪个消费者所以消息会消失。因为交换机没有缓存功能只做转发的功能。 使用场景用户注册→发送邮件→发送短信。 4.4.路由模式RoutingKey Direct exchange直连交换机是根据消息携带的路由键routing key将消息投递给对应队列的。 生产者发送消息到交换机并指定一个路由key消费者队列绑定到交换机时要制定路由keykey匹配就能接受消息key不匹配就不能接受消息。 例如我们可以把路由key设置为insert 那么消费者队列key指定包含insert才可以接收消息消费者队列key定义为update或者delete就不能接收消息。很好的控制了更新插入和删除的操作。 采用交换机direct模式 流程说明如果生产者投递消息到交换机(exchange),邮件队列和短信队列也都绑定了交换机(exchange)。但是当交换机的类型(typedirect)的时候交换机的转发(路由)由routingKey决定转发给谁。如下如图所示当交换机的rontingKeyemail的时候消息将转发到邮件队列服务然后由邮件消费者进行消费。而短信队列是都收不到消息的因为短信的路由routingKeymsg。如果短信队列也想收到消息就需要修改routingKeyemail才可以收到消息。 这就是交换机类型typedirect的用法及特性。 4.5.通配符模式Topics 说明此模式实在路由key模式的基础上使用了通配符来管理消费者接收消息。生产者P发送消息到交换机Xtypetopic交换机根据绑定队列的routing key的值进行通配符匹配 符号#匹配一个或者多个词lazy.# 可以匹配lazy.irs或者lazy.irs.cor 符号*只能匹配一个词lazy.* 可以匹配lazy.irs或者lazy.cor 消息队列RabbitMQ应答模式 为了确保消息不会丢失RabbitMQ支持消息应答。消费者发送一个消息应答告诉RabbitMQ这个消息已经接收并且处理完毕了。RabbitMQ就可以删除它了。 如果一个消费者挂掉却没有发送应答RabbitMQ会理解为这个消息没有处理完全然后交给另一个消费者去重新处理。这样你就可以确认即使消费者偶尔挂掉也不会丢失任何消息了。 没有任何消息超时限制只有当消费者挂掉时RabbitMQ才会重新投递。即使处理一条消息会花费很长的时间。 消息应答是默认打开的。我们通过显示的设置autoAsktrue关闭这种机制。现即自动应答开一旦我们完成任务消费者会自动发送应答。通知RabbitMQ消息已被处理可以从内存删除。如果消费者因宕机或链接失败等原因没有发送ACK不同于ActiveMQ在RabbitMQ里消息没有过期的概念则RabbitMQ会将消息重新发送给其他监听在队列的下一个消费者。 RabbitMQ的公平转发 目前消息转发机制是平均分配这样就会出现俩个消费者奇数的任务很耗时偶数的任何工作量很小造成的原因就是近当消息到达队列进行转发消息。并不在乎有多少任务消费者并未传递一个应答给RabbitMQ。仅仅盲目转发所有的奇数给一个消费者偶数给另一个消费者。 为了解决这样的问题我们可以使用basicQos方法传递参数为prefetchCount 1。这样告诉RabbitMQ不要在同一时间给一个消费者超过一条消息。 换句话说只有在消费者空闲的时候会发送下一条信息。调度分发消息的方式也就是告诉RabbitMQ每次只给消费者处理一条消息也就是等待消费者处理完毕并自己对刚刚处理的消息进行确认之后才发送下一条消息防止消费者太过于忙碌也防止它太过去清闲。 通过 设置channel.basicQos(1); 消息队列RabbitMQ应答模式 案例: 生产者端代码不变消费者端代码这部分就是用于开启手动应答模式的。 channel.basicConsume(QUEUE_NAME, false, defaultConsumer); 注第二个参数值为false代表关闭RabbitMQ的自动应答机制改为手动应答。 在处理完消息时返回应答状态true表示为自动应答模式。 channel.basicAck(envelope.getDeliveryTag(), false); 传统简单队列是如何实现的 生产者生产消息直接投递给队列服务器队列服务器在以推送消息到消费者或者消费者从队列服务器拉取消息进行消费。消费者启动的时候会与队列服务器建立长连接。 RabbitMQ关键名词 AMQP高级消息队列协议是一个异步消息传递所使用应用层协议规范为面向消息中间件设计基于此协议的客户端与消息中间件可以无视消息来源传递消息不受客户端、消息中间件、不同的开发语言环境等条件的限制 涉及概念解释  Server(Broker):接收客户端连接实现AMQP协议的消息队列和路由功能的进程 Virtual Host虚拟主机的概念类似权限控制组一个Virtual Host里可以有多个Exchange和Queue。      Exchange:交换机接收生产者发送的消息并根据Routing Key将消息路由到服务器中的队列Queue。 ExchangeType:交换机类型决定了路由消息行为RabbitMQ中有三种类型Exchange分别是fanout、direct、topic Message Queue消息队列用于存储还未被消费者消费的消息 Message由Header和body组成Header是由生产者添加的各种属性的集合包括Message是否被持久化、优先级是多少、由哪个Message Queue接收等 body是真正需要发送的数据内容 BindingKey绑定关键字将一个特定的Exchange和一个特定的Queue绑定起来。 RabbitMQ交换机的作用 生产者发送消息不会像传统方式直接将消息投递到队列中而是先将消息投递到交换机中在由交换机转发到具体的队列队列在将消息以推送或者拉取方式给消费者进行消费这和我们之前学习Nginx有点类似。 交换机的作用根据具体的路由策略分发到不同的队列中。 交换机有四种类型 Direct exchange直连交换机是根据消息携带的路由键 routing key将消息投递给对应队列的 Fanout exchange扇型交换机将消息路由给绑定到它身上的所有队列 Topic exchange主题交换机队列通过路由键绑定到交换机上然后交换机根据消息里的路由值将消息路由给一个或多个绑定队列 Headers exchange头交换机类似主题交换机但是头交换机使用多个消息属性来代替路由键建立路由规则。通过判断消息头的值能否与指定的绑定相匹配来确立路由规则。 RabbitMQ消息确认机制 问题产生背景: 生产者发送消息出去之后不知道到底有没有发送到RabbitMQ服务器 默认是不知道的。而且有的时候我们在发送消息之后后面的逻辑出问题了我们不想要发送之前的消息了需要撤回该怎么做。 如果RabbitMQ服务器宕机了消息会丢失吗 答案RabbitMQ服务器支持消息持久化机制会把消息持久化在硬盘上保存。代码设置 channel.queueDeclare(EMAIL_QUEUE, true, false, false, null); 方法第二个参数默认情况下我们应该设置为true。 解决方案: 1.AMQP 事务机制 2.Confir

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/910465.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站百度v认证网站栏目结构

链接:http://www.2cto.com/database/201207/139330.html转载于:https://www.cnblogs.com/nycj/p/5661151.html

.NET周刊【9月第1期 2025-09-07】

国内文章 关于.net9发布单体exe程序无法打开问题详解 https://www.cnblogs.com/sc-Free-Die/p/19075260 该文章探讨了使用.NET 9开发的Winform程序在发布为x64单文件exe后出现的异常。文章描述了在不同架构下(x64与x86…

第七章 Cesium 3D 粒子烟花效果案例解析:从原理到完整代码 - 详解

第七章 Cesium 3D 粒子烟花效果案例解析:从原理到完整代码 - 详解2025-09-22 21:37 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !i…

郑州专业网站制作的公司哪家好最大的免费网站建设

今年5月,Facebook AI研究院(FAIR)发表了他们的研究成果fairseq,在fairseq中,他们使用了一种新型的卷积神经网络来做语言翻译,比循环神经网络的速度快了9倍,而且准确性也是现有模型中最高的。此外…

SUDO提权

今天在NSS上刷题,写这道sudo提权时发现一个大佬wp质量很高,跟着思路记录一下,顺便向大佬致敬。Sudo 提权 向大佬致敬,太厉害了,四个月全勤,估计是写完题顺带写了wp[HZNUCTF 2023 final]ezgo 解题思路 Please POS…

2025.9.19 总结

这一场太逆天了,全靠部分分拿长郡榜二。 T1 逆序对这个东西很好搞,你只需要从前往后加就行了,然后你发现一个数只会和他最前面比它大的数产生贡献。 因为他前面比他大的数前面可能会有比它还大的,但是这样显然这个…

可以上传自己做的视频的网站吗网站建设公司星海网络

[TOC]为什么要有相对跳转和绝对跳转?顺序执行:指令一条一条按照顺序往下执行,比如变量的定义和赋值都是按照顺序执行的。跳转执行:当指令执行到当前位置后跳转到其他位置执行。比如,在主函数中调用其他函数就是典型的跳…

南京哪个网站做物业贷vue.js做静态网站

🏆作者:科技、互联网行业优质创作者 🏆专注领域:.Net技术、软件架构、人工智能、数字化转型、DeveloperSharp、微服务、工业互联网、智能制造 🏆欢迎关注我(Net数字智慧化基地),里面…

国外儿童社区网站模板网站建设的费用

演示站点: https://ai.uaai.cn 对话模块 官方论坛: www.jingyuai.com 京娱AI 一、AI技术创业在线辅导业务有哪些机会? 人工智能(AI)技术作为当今科技创新的前沿领域,为创业者提供了广阔的机会和挑战。随着…

东莞网站建设做网站dw可以做视频网站么

原文地址:http://www.goodfav.com/zh/app-development-tutorials-3559.html 移动应用程序开发是大企业和创意的个人和小团队开发,是一个有很多商业机会的领域之一。它可能需要多次尝试设计来实施一个出类拔萃的应用程序,但是,如果…

自媒体图片素材网站系统开发过程

我试图从Mathematica中获取一张图片.我尝试评估一些使用包中的方法生成图形的Mathematica代码.如果我将代码粘贴到Mathematica Notebook,则会正确生成图形.所以我的问题:如何将这些图形转换为Java ???这是我的示例代码:ml MathLinkFactory.createKer…

阿里云做的网站怎么样宁波网站建设公司哪里有

在Vue中,防抖和节流是两种常用的优化技术,用于限制事件的触发频率,以提高页面性能。 防抖(Debounce)是指在事件被触发后,等待一段时间后再执行回调函数。如果在这段等待时间内,事件又被触发&am…

建立一个网站大约要多少钱个人工作室和公司区别

前言 在上一篇文章中我们介绍了在计算机底层视角下的虚拟内存和操作系统在用户层所进行的各个分层,在这篇文章我们就要开始尝试书写多线程代码了,其实在c11后c就提供供了线程类给我们使用,c线程类其实主要是对c操作多线程的函数进行了封装,本质上其实是…

详细介绍:无公网 IP 访问群晖 NAS:神卓 N600 的安全解决方案(附其他方法风险对比)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

网站开发与设计结课大作业汽车可以做哪些广告视频网站

一、命名空间概念1、命名空间(name space)名称空间是存放名字的地方。若变量x1,1存放在内存中,命名空间是存放名字x、x与1绑定关系的地方。2、名称空间加载顺序python test.py#1、python解释器先启动,因而首先加载的是:内置名称空…

2025.9.18 总结

T1 就是有一个 dp 是 f i 0/1 0/1 表示有 i 个数,异或和是不是 0,异或和是不是等于最后一个数,然后矩阵加速就没了。 T2 会发现这个东西你可以贪心维护,每次能阔就阔不能阔就退出。然后判一下相邻两个颜色块之间的…

越南文识别技术:将纸质文档和信息快速、准确地转化为可编辑、可检索的数字数据

在数字化浪潮席卷全球的今天,如何将海量的纸质文档和信息快速、准确地转化为可编辑、可检索的数字数据,已成为一项关键挑战。光学字符识别(OCR)技术正是解决这一挑战的核心。作为OCR技术的一个重要分支,越南文识别…

#JAVA作业

1、什么样的方法应该用static修饰?不用static修饰的方法往往具有什么特性?Student的getName应该用static修饰吗? 答:用static修饰的方法多为工具类方法、工厂方法等不依赖对象状态的方法;不用static修饰的是实例方…

C#编程练习:使用队列存储消息,一次性存10条消息,每隔一段时间打印一条消息控制台打印消息时要有明显停顿感 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

东莞网站建设企业做彩票网站犯法

1.1 屏蔽罩作用 1.1.1 屏蔽电子信号,防止外界的干扰或内部向外的辐射: 一般见于通信类电路PCB,主要一个无线通信产品上有的敏感器件、模拟、数字电路、DCDC电源电路,都需屏蔽隔离,是为了不影响其它电路,也有防止其它电…