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

有关电商网站开发的参考文献山西省建设信息网站

有关电商网站开发的参考文献,山西省建设信息网站,用网站模板建站,广州seo网站优化培训RocketMQ生产环境常见问题分析与总结 如何保证消息不丢失 消息丢失场景 对于跨网络的节点可能会丢消息,因为MQ存盘都会先写入OS的PageCache中,然后再让OS进行异步刷盘,如果缓存中的数据未及时写入硬盘就会导致消息丢失 生产端到Broker端Brok…

RocketMQ生产环境常见问题分析与总结

image.png

如何保证消息不丢失

  • 消息丢失场景
    • 对于跨网络的节点可能会丢消息,因为MQ存盘都会先写入OS的PageCache中,然后再让OS进行异步刷盘,如果缓存中的数据未及时写入硬盘就会导致消息丢失
      • 生产端到Broker端
      • Broker端主从同步
      • Broker端到消费端
  • 消息零丢失方案
    • 生产端使用事务机制
      • 当生产端将消息发送到Broker端,Broker端持久化之后会给生产端进行反馈,此时的消息处于半事务消息,生产端执行本地事务根据执行结果向Broker端提交二次确认来判断是否提交以及回滚,此时如果生产端出现故障,Broker端未收到二次确认,会通过回查机制进行生产端实例回查,生产端收到回查后会继续向Broker端进行二次确认
    • 同步刷盘以及P2C两阶段提交(与ZAB机制类似)保证MQ主从同步时不会丢消息(同步刷盘 + Dledger主从架构)
      • 同步刷盘
      • P2C两阶段提交
        • 基于Raft协议完成
          • leader收到的消息会被标记为未提交然后同步给其它follower,follower收到消息后向leader反馈,当leader收到过半的follower的反馈之后才会将消息标记为已提交并且同步给其它follower
    • 消费者端不要使用异步消费机制
      • 在同步消费情况下,消费完消息之后再去给Broker端反馈,然后Broker端会去维护消息偏移量,如果消费失败可以进行一定次数的重试
      • 在异步消费情况下,消费完消息的同时也会向Broker端反馈,然后Broker端会去维护消息偏移量,如果处理失败了,不会进行重试因为偏移量已经变更
    • MQ服务端挂了采用降级方案(必须有)
      • RocketMQ特有的问题,NameServer挂了如何保证消息不丢失
        • NameServer在RocketMQ中扮演路由中心的角色,提供Broker的路由功能,所有MQ都需要路由中心的功能
          • 在Kafka中使用ZK和作为核心控制器的Broker一起来提供路由服务
          • 在RabbitMQ中是由每一个Broker来提供路由服务的
          • 在RockertMQ中单独抽取服务作为路由中心
        • 对于RocketMQ来说,NameServer挂了,本身就无法保证消息不丢失了,所以应对这种场景,我们可以使用服务降级方案,将消息暂存到Redis、文件或内存中,等MQ服务恢复之后再将消息转移过去

如何保证消息有序

  • MQ的顺序包含局部有序和全局有序

    • 局部有序:(只保证一部分消息链路消费有序)

      • 生产端可以通过消息选择器指定发送到某个MessageQueue,从而保证局部有序
    • 全局有序:(整个消息链路严格按照先进先出的顺序进行消费)

      • 要保证全局有序就必须牺牲吞吐量,也就是一个topic只能有一个MessageQueue被消费(默认4个),可以通过锁队列的方式进行消费,保证全局有序

如何快速处理积压消息

  • 对于Kafka和RocketMQ消息积压并不会对性能有太大的影响,但是对于RabbitMQ就会导致性能直线下降

  • 如何确定RocketMQ有大量的消息积压

    • 对于RocketMQ可以通过控制台查看消息的积压情况
  • 如何处理大量积压的消息

    • 通过增加消费者去加快消费
      • 如果Topic下的MessageQueue配置充足,那每个消费者会分配多个MessageQueue进行消费,所以可以增加消费者数加快消息消费,
      • 如果消费者数 = MessageQueue数,此时增加额外的消费者效果是没有的,此时可以通过新建一个新的Topic配置足够的MessageQueue,将旧Topic中的消息转移到新Topic中,并且指定对应数量的消费者去平摊新Topic的MessageQueue去进行消费,之后再根据情况恢复原有情况
        • Topic_A -> Consumer_A => Topic_A -> Consumer_A -> Topic_B -> Consumer_B
http://www.yayakq.cn/news/17167/

相关文章:

  • 8469网站哪里有建设银行
  • 食堂网站建设南通开发区人才网
  • 国外可以用什么网站做问卷酒店宾馆客栈旅馆古典网站源码 asp源码带后台
  • h5制作软件推荐亚马逊关键词优化软件
  • 淮南市建设工程质量监督中心网站asp网站采集
  • 昌平网站开发多少钱郑州最出名的不孕不育医院
  • 模板网站建站公司网站中文模板
  • 网络信息安全网站开发教程手机浏览器 网站开发
  • 协会秘书处工作建设 网站电子工程师网站
  • 廊坊网站设计电子商务网站制作公司
  • 网上写作文的网站关键词林俊杰mp3
  • 网站收录图片永修中铁三局招聘
  • 地方门户网站运营企业邮箱可以自己申请吗
  • 专业网站设计服务合肥网站建设公司 千鸟
  • 三明住房和城乡建设部网站网站开发h5技术
  • 导航类网站怎么做潍坊做网站建设
  • 巴中网站建设培训班网站文章排版的重要性
  • 贵州做网站kuhugzwordpress文章伪静态
  • 哪个网站可以做翻译兼职wordpress如何调用html代码
  • 企业建立网站主要包括那些流程百度收录提交网址
  • 网站运营服务商网站开发仓库管理系统需求分析
  • 北京市建设工程信息网官方网站福田公司总部
  • 吴忠网站设计公司重庆建设工程施工安全网
  • 番禺网站建设哪个好济南网站建设推广服务
  • 网站开发一月工资多少深圳装修设计公司排名前十强
  • 如何做图让网站的图更清晰安阳县面积
  • 沈阳网站制作公司思路wordpress雷锋网
  • 最全的数据网站3d建模软件免费下载
  • 换个网站对seo有什么影响微信如何开公众号
  • 实验中心网站建设有网络网站打不开怎么回事啊