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

创建个人网站教程网红网站建设官网

创建个人网站教程,网红网站建设官网,wordpress图片空间,信用门户网站建设1.RabbitMQ是什么#xff1f; RabbitMQ是一款开源的#xff0c;Erlang编写的#xff0c;基于AMQP#xff08;高级消息队列协议#xff09;协议的消息中间件。 2.为什么要使用消息队列#xff1f; 从本质上来说是因为互联网的快速发展#xff0c;业务不断扩张#xff0c…1.RabbitMQ是什么 RabbitMQ是一款开源的Erlang编写的基于AMQP高级消息队列协议协议的消息中间件。 2.为什么要使用消息队列 从本质上来说是因为互联网的快速发展业务不断扩张促使技术架构需要不断的演进。 从以前的单体架构到现在的微服务架构成百上千的服务之间相互调用和依赖。从互联网初期一个服务器上有 100 个在线用户已经很了不得到现在坐拥10亿日活的微信。此时我们需要有一个「工具」来解耦服务之间的关系、控制资源合理合时的使用以及缓冲流量洪峰等等。因此消息队列就应运而生了。 它常用来实现异步处理、服务解耦、流量控制削峰。 3.说说RabbitMQ中的几大组件 Broker接收和分发消息的应用RabbitMQ Server 就是 Message Broker。Virtual host出于多租户和安全因素设计的把 AMQP 的基本组件划分到一个虚拟的分组中类似于网络中的 namespace 概念。当多个不同的用户使用同一个 RabbitMQ server 提供的服务时可以划分出多个 vhost每个用户在自己的 vhost 创建 exchangequeue 等。Connectionpublisherconsumer 和 broker 之间的 TCP 连接Channel如果每一次访问 RabbitMQ 都建立一个 Connection在消息量大的时候建立 TCP Connection 的开销将是巨大的效率也较低。Channel 是在 connection 内部建立的逻辑连接如果应用程序支持多线程通常每个 thread 创建单独的 channel 进行通讯AMQP method 包含了 channel id 帮助客户端和 message broker 识别 channel所以 channel 之间是完全隔离的。 l Channel 作为轻量级的Connection 极大减少了操作系统建立 TCP connection 的开销。Exchange message 到达 broker 的第一站根据分发规则匹配查询表中的 routing key分发消息到 queue 中去。常用的类型有direct (point-to-point), topic (publish-subscribe) and fanout(multicast)。Queue 消息最终被送到这里等待 consumer 取走。Binding exchange 和 queue 之间的虚拟连接binding 中可以包含 routing keyBinding 信息被保存到 exchange 中的查询表中用于 message 的分发依据。Producer消息生产者就是投递消息的一方。消息一般包含两个部分消息体payload)和标签(Label)。Consumer消费消息也就是接收消息的一方。消费者连接到RabbitMQ服务器并订阅到队列上。消费消息时只消费消息体丢弃标签。 4.消息队列有什么优缺点 优点上面已经说了就是在特殊场景下有其对应的好处解耦、异步、削峰。缺点有以下几个 系统可用性降低系统引入的外部依赖越多越容易挂掉。万一 MQ 挂了MQ 一挂整套系统崩 溃你不就完了系统复杂度提高硬生生加个 MQ 进来你怎么保证消息没有重复消费怎么处理消息丢失的情况怎么保证消息传递的顺序性问题一大堆。一致性问题A 系统处理完了直接返回成功了人都以为你这个请求就成功了但是问题是要是 BCD 三个系统那里BD 两个系统写库成功了结果 C 系统写库失败了咋整你这数据就不一致 了。 5.如何保证消息的可靠性 消息到MQ的过程中搞丢MQ自己搞丢MQ到消费过程中搞丢。 生产者到RabbitMQ事务机制和Confirm机制注意事务机制和 Confirm 机制是互斥的两者不能共存会导致 RabbitMQ 报错。 RabbitMQ自身持久化、集群、普通模式、镜像模式。 RabbitMQ到消费者basicAck机制、死信队列、消息补偿机制。 6.RabbitMQ中常见交换机类型有哪些 fanout把所有发送到该交换器的消息路由到所有与该交换器绑定的队列中。direct把消息路由到BindingKey和RoutingKey完全匹配的队列中。topic RoutingKey 为一个 点号.: 分隔的字符串。比如: szh.name.loveBindingKey和RoutingKey一样也是点号“.“分隔的字符串。 BindingKey可使用 * 和 # 用于做模糊匹配*匹配一个单词#匹配多个或者0个 7.生产者发送消息的过程是怎样的 Producer先连接到Broker建立连接Connection开启一个信道(Channel)。Producer声明一个交换器并设置好相关属性。Producer声明一个队列并设置好相关属性。Producer通过路由键将交换器和队列绑定起来。Producer发送消息到Broker,其中包含路由键、交换器等信息。相应的交换器根据接收到的路由键查找匹配的队列。如果找到将消息存入对应的队列如果没有找到会根据生产者的配置丢弃或者退回给生产者。关闭信道关闭连接。 8.消费者接收消息的过程是怎样的 Producer先连接到Broker建立连接Connection开启一个信道(Channel)。向Broker请求消费响应的队列中的消息可能会设置响应的回调函数。等待Broker回应并投递相应队列中的消息接收消息。消费者确认收到的消息ack。RabbitMQ从队列中删除已经确定的消息。关闭信道关闭连接。 9.交换机无法根据自身类型和路由键找到符合条件队列时有哪些处理方法 mandatory true 返回消息给生产者。mandatory : false 直接丢弃。 10.什么是死信队列导致死信的原因有哪些 死信DLX全称为 Dead-Letter-Exchange死信交换器死信邮箱。顾名思义就是无法被消费的消息一般来说producer 将消息投递到 broker 或者直接到 queue 里了consumer 从 queue 取出消息进行消费但某些时候由于特定的原因导致 queue 中的某些消息无法被消费这样的消息如果没有后续的处理就变成了死信有死信自然就有了死信队列。 消息 TTL 过期队列达到最大长度 (队列满了无法再添加数据到 mq 中)消息被拒绝 (basic.reject 或 basic.nack) 并且 requeuefalse. 11.什么是延迟队列使用场景有哪些 存储对应的延迟消息指当消息被发送以后并不想让消费者立刻拿到消息而是等待特定时间后消费者才能拿到这个消息进行消费。 订单在十分钟之内未支付则自动取消。新创建的店铺如果在十天内都没有上传过商品则自动发送消息提醒。用户注册成功后如果三天内没有登陆则进行短信提醒。用户发起退款如果三天内没有得到处理则通知相关运营人员。预定会议后需要在预定的时间点前十分钟通知各个与会人员参加会议 12.什么是优先级队列 优先级高的队列会先被消费。可以通过 x-max-priority参数来实现。当消费速度大于生产速度且Broker没有堆积的情况下优先级显得没有意义。 13.RabbitMQ中的事务机制 RabbitMQ 客户端中与事务机制相关的方法有三个: channel.txSelect 用于将当前的信道设置成事务模式。 channel.txCommit 用于提交事务 。 channel.txRollback 用于事务回滚如果在事务提交执行之前由于 RabbitMQ 异常崩溃或者其他原因抛出异常通过txRollback来回滚。 14.RabbitMQ中的发送确认机制 生产者将信道设置成 confirm 模式一旦信道进入 confirm 模式 所有在该信道上面发布的消息都将会被指派一个唯一的 ID(从 1 开始)一旦消息被投递到所有匹配的队列之后broker就会发送一个确认给生产者(包含消息的唯一 ID)这就使得生产者知道消息已经正确到达目的队列了。 15.如何保证RabbitMQ消息队列的高可用 RabbitMQ 有三种模式单机模式普通集群模式镜像集群模式。 单机模式就是demo级别的一般就是你本地启动了玩玩儿的没人生产用单机模式 普通集群模式意思就是在多台机器上启动多个RabbitMQ实例每个机器启动一个。 镜像集群模式这种模式才是所谓的RabbitMQ的高可用模式跟普通集群模式不一样的是你创建的queue无论元数据(元数据指RabbitMQ的配置数据)还是queue里的消息都会存在于多个实例上然后每次你写消息到queue的时候都会自动把消息到多个实例的queue里进行消息同步。
http://wiki.neutronadmin.com/news/285451/

相关文章:

  • 本溪 网站建设 做网站项目建设规划
  • 网站综合建设笔记seo短视频网页入口引流
  • 网站域名和网站网址做网站 怎么选择公司
  • 衣服网站建设方案书网站建设的费用计入
  • 新网域名网站网站优化怎么弄
  • 天津网站制作推广做详情页网站
  • 做男装比较好的网站搜索建站网
  • 空气净化器用什么网站做外贸新网官方网站
  • 做网站一天聊天软件是怎么开发的
  • 宁夏建设注册中心网站注册帐号
  • 凡科网站后台在哪里.贵州省建设监理协会官方网站
  • 厦门手机网站建设北京网站开发最专业的公司
  • 网站规划的任务开发软件的公司叫什么
  • 英文网站模板源代码免费做旅游海报的网站
  • 宁波网站建设报价动漫网站建设方案设计
  • 怎么找网站做推广泰安北京网站建设公司
  • 网站权重难做做招聘网站毕业设计
  • 网站建设部门坂田做网站多少钱
  • 建站目的网站设计是干什么的
  • 网站与网页区别是什么意思网站建设电影
  • 做物流的网站都有什么购物网站建设款流程
  • php和mysql网站毕业设计建设自己的企业网站需要什么资料
  • 局 网站建设方案wordpress安装时数据库错误
  • 武陟网站建设学校门户网站建设方案
  • 佛山市南海建设局网站做网站看什么书
  • 外贸流程询盘网站seo优化主要有哪些手段
  • 什么软件做美食视频网站装修公司加盟哪个好
  • 烟台网站制作培训上海网站建设公司 翱思
  • 网站网页框架构架图怎么做网站整套模板
  • 网站开发时app打开很慢用户中心网站设计