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

网站建设开发实训的目的烟台互联网公司

网站建设开发实训的目的,烟台互联网公司,做快递网站难吗,wordpress 配置要求文章目录 1. RabbitMQ特点2. 如何保证消息的可靠性3. RabbitMQ消息的顺序性4. 实现RabbitMQ的高可用性5. 如何解决消息队列的延时以及过期失效问题#xff1f;6. RabbitMQ死信队列7. RabbitMQ延迟队列8.RabbitMQ的工作模式9. RabbitMQ消息如何传输10. 核心概念10.1 生产者和消… 文章目录 1. RabbitMQ特点2. 如何保证消息的可靠性3. RabbitMQ消息的顺序性4. 实现RabbitMQ的高可用性5. 如何解决消息队列的延时以及过期失效问题6. RabbitMQ死信队列7. RabbitMQ延迟队列8.RabbitMQ的工作模式9. RabbitMQ消息如何传输10. 核心概念10.1 生产者和消费者10.2 交换器和消息队列10.3 Broker消息中间件的服务节点10.4 AMQP协议 1. RabbitMQ特点 可靠性: RabbitMQ 使用一些机制来保证可靠性如持久化、传输确认及发布确认等。灵活的路由 : 在消息进入队列之前通过交换器来路由消息。对于典型的路由功能 RabbitMQ己经提供了一些内置的交换器来实现。针对更复杂的路由功能可以将多个交换器绑定在一起 也可以通过插件机制来实现自己的交换器。扩展性: 多个 RabbitMQ 节点可以组成一个集群也可以根据实际业务情况动态地扩展集群中节点。高可用性: 队列可以在集群中的机器上设置镜像使得在部分节点出现问题的情况下队 列仍然可用。多种协议: RabbitMQ 除了原生支持 AMQP 协议还支持 STOMP MQTT 等多种消息 中间件协议。多语言客户端 RabbitMQ 几乎支持所有常用语言比如 Java、 Python、 Ruby、 PHP、 C#、JavaScript 等。管理界面 : RabbitMQ 提供了一个易用的用户界面使得用户可以监控和管理消息、集 群中的节点等。插件机制 : RabbitMQ 提供了许多插件 以实现从多方面进行扩展当然也可以编写自 己的插件。 2. 如何保证消息的可靠性 消息到 MQ 的过程中搞丢生产者到 RabbitMQ 事务机制和 Confirm 机制注意事务机制和 Confirm 机制是互斥的两者不能共存会导致 RabbitMQ 报错。MQ 自己搞丢RabbitMQ 自身 持久化、集群、普通模式、镜像模式MQ 到消费过程中搞丢RabbitMQ 到消费者 basicAck 机制、死信队列、消息补偿机制。 3. RabbitMQ消息的顺序性 添加链接描述 出现顺序性问题的原因 1个queue多个消息者 消费者里面多线程操作 解决方案 拆分多个 queue(消息队列)每个 queue(消息队列) 一个 consumer(消费者)就是多一些 queue (消息队列)而已确实是麻烦点 或者就一个 queue (消息队列)但是对应一个 consumer(消费者)然后这个 consumer(消费者)内部用内存队列做排队然后分发给底层不同的 worker 来处理。 4. 实现RabbitMQ的高可用性 RabbitMQ 有三种模式单机模式、普通集群模式、镜像集群模式。 单机模式 普通集群模式 多台机器上启动多个 RabbitMQ 实例每个机器启动一个。你创建的 queue只会放在一个 RabbitMQ 实例上但是每个实例都同步 queue 的元数据(元数据可以认为是 queue 的一些配置信息通过元数据可以找到 queue 所在实例)。 你消费的时候实际上如果连接到了另外一个实例那么那个实例会从 queue 所在实例上拉取数据过来。这方案主要是提高吞吐量的就是说让集群中多个节点来服务某个 queue 的读写操作。 镜像集群模式 在镜像集群模式下你创建的 queue无论元数据还是 queue 里的消息都会存在于多个实例上就是说每个 RabbitMQ 节点都有这个 queue 的一个完整镜像包含 queue 的全部数据的意思。然后每次你写消息到 queue 的时候都会自动把消息同步到多个实例的 queue 上。RabbitMQ 有很好的管理控制台就是在后台新增一个策略这个策略是镜像集群模式的策略指定的时候是可以要求数据同步到所有节点的也可以要求同步到指定数量的节点再次创建 queue 的时候应用这个策略就会自动将数据同步到其他的节点上去了。这样的好处在于你任何一个机器宕机了没事儿其它机器节点还包含了这个 queue 的完整数据别的 consumer 都可以到其它节点上去消费数据。坏处在于第一这个性能开销也太大了吧消息需要同步到所有机器上导致网络带宽压力和消耗很重RabbitMQ 一个 queue 的数据都是放在一个节点里的镜像集群下也是每个节点都放这个 queue 的完整数据。 5. 如何解决消息队列的延时以及过期失效问题 RabbtiMQ 是可以设置过期时间的也就是 TTL。如果消息在 queue 中积压超过一定的时间就会被 RabbitMQ 给清理掉这个数据就没了。这就不是说数据会大量积压在 mq 里而是大量的数据会直接搞丢。 我们可以采取一个方案就是批量重导这个我们之前线上也有类似的场景干过。就是大量积压的时候我们当时就直接丢弃数据了然后等过了高峰期以后比如大家一起喝咖啡熬夜到晚上 12 点以后用户都睡觉了。这个时候我们就开始写程序将丢失的那批数据写个临时程序一点一点的查出来然后重新灌入 mq 里面去把白天丢的数据给他补回来。也只能是这样了。假设 1 万个订单积压在 mq 里面没有处理其中 1000 个订单都丢了你只能手动写程序把那 1000 个订单给查出来手动发到 mq 里去再补一次。 6. RabbitMQ死信队列 定义 DLX全称为 Dead-Letter-Exchange死信交换器死信邮箱。当消息在一个队列中变成死信(顾名思义就是无法被消费的消息)之后它能被重新被发送到另一个交换器中这个交换器就是 DLX绑定 DLX 的队列就称之为死信队列。导致死信的原因 消息 TTL 过期 队列达到最大长度(队列满了无法再添加数据到 mq 中) 消息被拒绝(basic.reject 或 basic.nack)并且 requeuefalse.应用 为了保证订单业务的消息数据不丢失需要使用到 RabbitMQ 的死信队列机制当消息消费发生异常时将消息投入死信队列中.还有比如说: 用户在商城下单成功并点击去支付后在指定时间未支付时自动失效 7. RabbitMQ延迟队列 定义 延迟队列指的是存储对应的延迟消息消息被发送以后并不想让消费者立刻拿到消息而是等待特定时间后消费者才能拿到这个消息进行消费。 实现方式 死信队列 TTL过期时间 优化避免新增一个时间就新增一个队列在生产端设置TTL 插件实现 8.RabbitMQ的工作模式 简单模式 只有一个队列work 工作模式 生产者-多个队列-消费者没有交换机pub/sub 发布订阅模式 生产者-交换机-多个队列-消费者Routing 路由模式 1、每个消费者监听自己的队列并且设置routingkey。 2、生产者将消息发给交换机由交换机根据routingkey来转发消息到指定的队列。Topic 主题模式 1、每个消费者监听自己的队列并且设置带统配符的routingkey。 2、生产者将消息发给broker由交换机根据routingkey来转发消息到指定的队列。 9. RabbitMQ消息如何传输 由于 TCP 链接的创建和销毁开销较大且并发数受系统资源限制会造成性能瓶颈所以 RabbitMQ 使用信道的方式来传输数据。信道Channel是生产者、消费者与 RabbitMQ 通信的渠道信道是建立在 TCP 链接上的虚拟链接且每条 TCP 链接上的信道数量没有限制。就是说 RabbitMQ 在一条 TCP 链接上建立成百上千个信道来达到多个线程处理这个 TCP 被多个线程共享每个信道在 RabbitMQ 都有唯一的 ID保证了信道私有性每个信道对应一个线程使用。 10. 核心概念 10.1 生产者和消费者 10.2 交换器和消息队列 RabbitMQ 的 Exchange(交换器) 有 4 种类型不同的类型对应着不同的路由策略direct(默认)fanout, topic, 和 headers 10.3 Broker消息中间件的服务节点 Broker可以看做 RabbitMQ 的服务节点。一般请下一个 Broker 可以看做一个 RabbitMQ 服务器。 Queue :RabbitMQ的内部对象用于存储消息。多个消费者可以订阅同一队列这时队列中的消息会被平摊轮询给多个消费者进行处理。 Exchange : 生产者将消息发送到交换器由交换器将消息路由到一个或者多个队列中。当路由不到时或返回给生产者或直接丢弃 10.4 AMQP协议 RabbitMQ 就是 AMQP 协议的 Erlang 的实现(当然 RabbitMQ 还支持 STOMP2、 MQTT3 等协议 ) AMQP 的模型架构 和 RabbitMQ 的模型架构是一样的生产者将消息发送给交换器交换器和队列绑定 。 AMQP 协议的三层 Module Layer:协议最高层主要定义了一些客户端调用的命令客户端可以用这些命令实现自己的业务逻辑。 Session Layer:中间层主要负责客户端命令发送给服务器再将服务端应答返回客户端提供可靠性同步机制和错误处理。TransportLayer:最底层主要传输二进制数据流提供帧的处理、信道服用、错误检测和数据表示等 AMQP 模型的三大组件 交换器 (Exchange)消息代理服务器中用于把消息路由到队列的组件。 队列 (Queue)用来存储消息的数据结构位于硬盘或内存中。 绑定 (Binding)一套规则告知交换器消息应该将消息投递给哪个队列。
http://www.pierceye.com/news/591354/

相关文章:

  • 网站开发 h5 h4网站运作模式
  • 竞彩网站开发那些市区做网站群
  • 建投五公司网站找苏州网站建设
  • 徐州IT兼职网站开发中国做陶壶的网站有哪些
  • WordPress模板转换typecho郑州搜索引擎优化
  • 个人怎么做贷款网站什么是网络营销产品
  • 网站你的后台管理系统用什么做外包公司与劳务派遣区别
  • 设计师资源网站价格低油耗低的车
  • 中山快速做网站服务wordpress建站ftp
  • 做酒类直供网站行吗网站seo检测报告
  • 南昌建站费用网站建设出错1004
  • 十堰做网站的公司阿里巴巴外贸网站论坛
  • 品牌网站建设代理网站建设公司易下拉软件
  • 移动网站模板响应式网站开发教程pdf
  • 怎么设计网站内容小程序seo帝搜软件sem880官网
  • 十堰秦楚网 十堰新闻门户网站wordpress 点赞 开启
  • 做外贸网站需要注意些什么手续安阳吧贴吧
  • 国外申请域名的网站百度标记号码认证平台
  • 专门做淘宝代运营的网站支付建设网站的费用什么科目
  • 天津企业设计网站建设建个网站做外贸
  • 申请永久网站空间wordpress论坛采集
  • 网站如何做竞价佛山新网站建设机构
  • 网站建设费可以一次性冲费用吗学校门户网站作用
  • 手机上怎么制作网站音乐网站如何建立
  • 新乡企业网站建设公司寮步东莞网站建设
  • wordpress中国网站排名如何加入广告联盟赚钱
  • 济宁网站建设培训学校wordpress导入表单
  • 做农产品交易网站阿里云已备案域名购买
  • 免费建站网站一级大录像不卡谁给我一个企业邮箱认证
  • 中国做网站东台做网站公司