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

简述网站开发的三层架构全域seo

简述网站开发的三层架构,全域seo,阿里巴巴1688官网登录,昆山建设网站目录 1.你们项目中哪里用到了RabbitMQ 2、为什么会选择使用RabbitMQ 3、使用RabbitMQ如何保证消息不丢失 4、消息的重复消费问题如何解决的 5、如何解决消息堆积在MQ的问题 6、RabbitMQ如何保证消费的顺序性 7、RabbitMQ的延迟队列有了解过嘛 8、RabbitMQ如何设置消息过…

目录

1.你们项目中哪里用到了RabbitMQ

2、为什么会选择使用RabbitMQ

3、使用RabbitMQ如何保证消息不丢失

4、消息的重复消费问题如何解决的

5、如何解决消息堆积在MQ的问题

6、RabbitMQ如何保证消费的顺序性

7、RabbitMQ的延迟队列有了解过嘛

8、RabbitMQ如何设置消息过期

9、什么是死信交换机

10、RabbitMQ的集群有哪些


1.你们项目中哪里用到了RabbitMQ

RabbitMQ是我们项目中服务通信的主要方式之一 , 我们项目中服务通信主要有二种方式实现 :

  1. 通过Feign实现服务的同步调用

  2. 通过MQ实现服务的异步通信

下面要结合自己的项目中功能来说两个地方

  1. xxx

  2. xxx

2、为什么会选择使用RabbitMQ

我们项目中之所以选择使用RabbitMQ,是因为它的功能比较丰富 , 支持各种消息收发模式, 支持延迟队列 , 惰性队列

而且天然支持集群, 保证服务的高可用, 同时性能非常不错 , 社区也比较活跃, 文档资料非常丰富

使用MQ有很多好处,简单跟您说几个:

  • 吞吐量提升:无需等待订阅者处理完成,响应更快速

  • 故障隔离:服务没有直接调用,不存在级联失败问题

  • 调用间没有阻塞,不会造成无效的资源占用

  • 耦合度极低,每个服务都可以灵活插拔,可替换

  • 流量削峰:不管发布事件的流量波动多大,都由Broker接收,订阅者可以按照自己的速度去处理事件

当然使用使用MQ也有一些缺点

  • 架构复杂了,业务没有明显的流程线,不好管理

  • 需要依赖于Broker的可靠、安全、性能

总之,瑕不掩瑜,使用了RabbitMQ之后可以大大提供程序的效率

3、使用RabbitMQ如何保证消息不丢失

消息从生产者发送到消费者接收,会经历多个过程 , 其中的每一步都可能导致消息丢失

大体可以分为这样几种情况:

  1. 消息发送到交换机丢失

  2. 消息从交换机路由到队列丢失

  3. 消息保存到队列中丢失

  4. 消费者消费消息丢失

针对每一步,RabbitMQ分别给出了解决方案:

  1. 消息发送到交换机丢失:发布者确认机制

    消息发送到交换机失败会向生产者返回失败原因,生产者通过回调接收发送结果,如果发送失败,重新发送,或者记录日志人工介入

  2. 消息从交换机路由到队列丢失:发布者回执机制

    消息从交换机路由到队列失败会向生产者返回失败原因 ,生产者通过回调接收回调结果,如果发送失败,重新发送,或者记录日志人工介入

  3. 消息保存到队列中丢失:MQ持久化

    RabbitMQ运行开启交换机持久化、队列持久化、消息持久化,以保证消息在传输过程中不会丢失

  4. 消费者消费消息丢失:消费者确认机制

    消费者确认机制指的是只有消费者一方确认消息消费成功了,mq才删除消息,否则就会重新发送消息给消费者

通过RabbitMQ本身所提供的机制基本上已经可以保证消息不丢失, 但是因为一些特殊的原因还是会发送消息丢失问题 ,

例如 : 回调丢失 , 系统宕机, 磁盘损坏等 , 这种概率很小 , 但是如果想规避这些问题 , 进一步提高消息发送的成功率, 也可以通过程序自己进行控制

设计一个消息状态表 , 主要包含 : 消息id , 消息内容 , 交换机 , 消息路由key , 发送时间, 签收状态等字段 , 发送方业务执行完毕之后 , 向消息状态表保存一条消息记录, 消息状态为未签收 , 之后再向MQ发送消息 , 消费方接收消息消费完毕之后 , 向发送方发送一条签收消息 , 发送方接收到签收消息之后 , 修改消息状态表中的消息状态为已签收 ! 之后通过定时任务扫描消息状态表中这些未签收的消息 , 重新发送消息, 直到成功为止 , 对于已经完成消费的消息定时清理即可 !

4、消息的重复消费问题如何解决的

在使用RabbitMQ进行消息收发的时候,如果发送失败或者消费失败会自动进行重试,那么就有可能会导致消息的重复消费

解决方案:

  • 每条消息设置一个唯一的标识id

  • 幂等方案

    • token+redis

    • 分布式锁

    • 数据库锁(悲观锁、乐观锁)

5、如何解决消息堆积在MQ的问题

解决消息堆积有几种种思路:

  1. 提高消费者的消费能力,例如使用多线程消费

  2. 增加消费者数量,提高消费速度,可以使用ork队列模式,设置多个消费者消费消费同一个队列中的消息

  3. 扩大队列容积,提高堆积上限

  4. 使用RabbitMQ惰性队列,接收到消息后直接存入磁盘而非内存,消费者要消费消息时才会从磁盘中读取并加载到内存

6、RabbitMQ如何保证消费的顺序性

一个队列只设置一个消费者消费即可 , 多个消费者之间是无法保证消息消费顺序性的

7、RabbitMQ的延迟队列有了解过嘛

RabbitMQ的延迟队列有两种实现方案 :

  1. 使用消息过期TTL + 死信交换机

  2. 使用延迟交换机插件

8、RabbitMQ如何设置消息过期

RabbitMQ设置消息过期的方式有两种 :

  1. 在队列上设置过期时间,所有进到这个队列的消息就会具有统一的过期时间

  2. 为消息单独设置过期时间

注意 :

  1. 队列过期和消息过期同时存在 , 会以时间短的时间为准

  2. RabbitMQ队列消息过期的机制是判断队列头部元素是否过期 , 如果队里头部消息没有到过期时间 , 中间消息到了过期时间, 这个消息也不会被自动剔除

9、什么是死信交换机

死信交换机和正常的交换机没有什么不同,当一个包含死信的队列使用dead-letter-exchange属性,指定了一个交换机,这个交换机称为死信交换机

也就是说只有队列中的死信才会流转到死信交换机,而当一个队列中的消息满足下列情况之一时,就会成为死信:

  • 消费者使用basic.reject或 basic.nack声明消费失败,并且消息的requeue参数设置为false

  • 消息是一个过期消息,超时无人消费

  • 要投递的队列消息满了,无法投递

一般的死信交换机还会再跟着一个专门的队列,用来专门存储所有的死信,以方便后期的人工干预

10、RabbitMQ的集群有哪些

RabbitMQ天然支持集群模式,它的集群有两种模式:

  • 普通集群:是一种分布式集群,将队列分散到集群的各个节点,从而提高整个集群的并发能力

    这种集群会在集群的各个节点间共享部分数据,包括:交换机、队列元信息。不包含队列中的消息。

    当访问集群某节点时,如果队列不在该节点,会从数据所在节点传递到当前节点并返回

    如果队列所在节点宕机,队列中的消息就会丢失

  • 镜像集群:是一种主从集群,普通集群的基础上,添加了主从备份功能,提高集群的数据可用性。

    这种集群模式下,交换机、队列、队列中的消息会在各个mq的镜像节点之间同步备份

    创建队列的节点被称为该队列的主节点,备份到的其它节点叫做该队列的镜像节点。

    一个队列的主节点可能是另一个队列的镜像节点

    所有操作都是主节点完成,然后同步给镜像节点

    主宕机后,镜像节点会替代成新的主机


文章转载自:
http://dinncobetelnut.ssfq.cn
http://dinncobackless.ssfq.cn
http://dinncobreen.ssfq.cn
http://dinncotraveling.ssfq.cn
http://dinncosoulless.ssfq.cn
http://dinncokymograph.ssfq.cn
http://dinncosouter.ssfq.cn
http://dinncoeustonian.ssfq.cn
http://dinncoallow.ssfq.cn
http://dinncoantiferromagnet.ssfq.cn
http://dinncocrepitant.ssfq.cn
http://dinncorecommendation.ssfq.cn
http://dinncoassumption.ssfq.cn
http://dinncoassibilation.ssfq.cn
http://dinncoglogg.ssfq.cn
http://dinncounconspicuous.ssfq.cn
http://dinncoorientalia.ssfq.cn
http://dinncosyrian.ssfq.cn
http://dinncosavey.ssfq.cn
http://dinncophotocoagulating.ssfq.cn
http://dinncoparthenogenetic.ssfq.cn
http://dinncohail.ssfq.cn
http://dinncostoneworker.ssfq.cn
http://dinncosuperrat.ssfq.cn
http://dinncoflavicant.ssfq.cn
http://dinncoplebe.ssfq.cn
http://dinncobaccivorous.ssfq.cn
http://dinncodiplomatize.ssfq.cn
http://dinncoantitrades.ssfq.cn
http://dinncoadulate.ssfq.cn
http://dinncoimpanel.ssfq.cn
http://dinncohexanitrate.ssfq.cn
http://dinncolyssic.ssfq.cn
http://dinncotreachery.ssfq.cn
http://dinncoshinplaster.ssfq.cn
http://dinncoinjudicious.ssfq.cn
http://dinncocomedist.ssfq.cn
http://dinncohandgrip.ssfq.cn
http://dinncointractable.ssfq.cn
http://dinncorearer.ssfq.cn
http://dinncodittybop.ssfq.cn
http://dinncobali.ssfq.cn
http://dinncogusher.ssfq.cn
http://dinncokeratolytic.ssfq.cn
http://dinncobuckeen.ssfq.cn
http://dinncocupulate.ssfq.cn
http://dinncosowntown.ssfq.cn
http://dinncoperforming.ssfq.cn
http://dinncoreattempt.ssfq.cn
http://dinncosaqqara.ssfq.cn
http://dinncooutyell.ssfq.cn
http://dinncobounden.ssfq.cn
http://dinncobodyguard.ssfq.cn
http://dinncogaingiving.ssfq.cn
http://dinncocsiro.ssfq.cn
http://dinncosco.ssfq.cn
http://dinncosalah.ssfq.cn
http://dinncoreliability.ssfq.cn
http://dinncohylotropic.ssfq.cn
http://dinncogustavus.ssfq.cn
http://dinncoinsouciant.ssfq.cn
http://dinncofructicative.ssfq.cn
http://dinncospringtide.ssfq.cn
http://dinncogaramond.ssfq.cn
http://dinncoestimating.ssfq.cn
http://dinncofooting.ssfq.cn
http://dinncoperforming.ssfq.cn
http://dinncotimeworn.ssfq.cn
http://dinncoantemarital.ssfq.cn
http://dinncopurveyance.ssfq.cn
http://dinncoaphis.ssfq.cn
http://dinncoslanderer.ssfq.cn
http://dinncostockjobbing.ssfq.cn
http://dinncoleporine.ssfq.cn
http://dinncounceremonious.ssfq.cn
http://dinncoqwerty.ssfq.cn
http://dinncodespise.ssfq.cn
http://dinncoinstead.ssfq.cn
http://dinncoaphthoid.ssfq.cn
http://dinncoinfection.ssfq.cn
http://dinncocarcinogenicity.ssfq.cn
http://dinncosnapshot.ssfq.cn
http://dinncosrinagar.ssfq.cn
http://dinncoviewpoint.ssfq.cn
http://dinnconeurochemist.ssfq.cn
http://dinncodiphenylketone.ssfq.cn
http://dinncoteg.ssfq.cn
http://dinncobasketball.ssfq.cn
http://dinncoawninged.ssfq.cn
http://dinncoflair.ssfq.cn
http://dinncophycoerythrin.ssfq.cn
http://dinncomurky.ssfq.cn
http://dinncoluteolin.ssfq.cn
http://dinnconosepipe.ssfq.cn
http://dinncoginhouse.ssfq.cn
http://dinncoskinfold.ssfq.cn
http://dinncoforthwith.ssfq.cn
http://dinncoroorback.ssfq.cn
http://dinncomediagenic.ssfq.cn
http://dinncoblastocoel.ssfq.cn
http://www.dinnco.com/news/133410.html

相关文章:

  • 做注册任务的网站有哪些常见的搜索引擎有哪些?
  • 苏州网站建设套餐网站建设及网站推广
  • 安徽建设银行招聘网站北京互联网公司排名
  • 装饰工程 技术支持 东莞网站建设做网页设计的软件
  • 网站用什么框架做营销型网站制作成都
  • 东海县建网站综合型b2b电子商务平台网站
  • 甘肃省5g网站建设中标单位成都有实力的seo团队
  • 电脑搭建网站需要空间上海抖音推广
  • 个人可以做行业网站吗电商平台建设方案
  • 做wow宏的网站百度品牌推广
  • 南宁网站搭建广告投放网站平台
  • 高明网站建设公司alexa排名查询统计
  • 怎么做文化传播公司网站黄山网站seo
  • 诚信通网站怎么做外链郑州关键词排名外包
  • 眼镜网站怎么做竞价最新的国际新闻
  • 常平网站仿做哈尔滨最新消息
  • python是做网站的吗苹果cms永久免费建站程序
  • 香港主机做福彩网站网站不收录怎么办
  • pc端手机网站 样式没居中免费发广告的软件
  • 南山网站建设深圳信科磁力宝最佳搜索引擎入口
  • 网站下载速度慢外贸seo网站
  • 使用redis做视频网站缓存seo公司广州
  • 张掖网站制作优化提升
  • wordpress响应速度太慢安全优化大师下载
  • 怎么才能找到想做网站建设的客源搜索百度网址网页
  • 网站建设去哪比百度好用的搜索软件手机版
  • 长沙网站托管哪家好百度推广关键词优化
  • 苹果软件做ppt下载网站有哪些内容网站是怎么做出来的
  • 大型网站建设兴田德润简介app推广方式有哪些
  • 网站不同颜色国产长尾关键词拘挖掘