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

网站后台管理系统很慢优化人员配置

网站后台管理系统很慢,优化人员配置,工程建设服务平台,个人备案网站可以做论坛吗目录 一、哪些场景需要消息保序?二、如何实现消息保序?三、保序消息的常见问题和应对策略3.1、重复消息3.2、节点故障3.3、分区扩容四、小结本文来源:极客时间vip课程笔记 一、哪些场景需要消息保序? 消息保序问题指的是,在通过消息中间件传递消息过程中,我们希望消费者收…

目录

    • 一、哪些场景需要消息保序?
    • 二、如何实现消息保序?
    • 三、保序消息的常见问题和应对策略
      • 3.1、重复消息
      • 3.2、节点故障
      • 3.3、分区扩容
    • 四、小结

本文来源:极客时间vip课程笔记

一、哪些场景需要消息保序?

  • 消息保序问题指的是,在通过消息中间件传递消息过程中,我们希望消费者收到消息的顺序,和发送者发送消息的顺序保持一致。或者说,消息中间件在传递消息时,不要改变消息之间的顺序。
  • 过在工程实践中,我们面临的保序问题不一定只是局限在消息保序这一个环节,更常见的场景是,事件经过包含消息队列等多个环节的处理和传递后,在某个服务内能够按照事件发生的顺序来逐个处理这些事件,不发生乱序。比如:
    (1)、在证券、股票交易撮合场景中,对于出价相同的交易单,需要坚持按照先出价先交易的原则,下游处理订单的系统需要严格按照出价顺序来处理订单。
    (2)、在数据库变更增量同步场景中,上游源端数据库按需执行增删改操作,将 BINLOG 作为消息,通过消息队列传输到下游系统,下游系统按顺序还原消息数据,实现状态数据有序更新。
    (3)、在电商系统中,订单创建、支付、退款、物流等消息需要按照顺序处理,才能保证订单状态的正确更新。

二、如何实现消息保序?

  • 有些消息队列其设计就是基于队列来实现的,比如 RabbitMQ。

  • 我们知道队列的特性就是先进先出,天然就是有序的,使用这种“基于队列来实现的消息队列”传递消息,自然就可以实现消息保序。

  • 但是为了实现高吞吐,更多的消息队列在设计上采用的是多分区或多队列的实现,比如 Kafka 或 RocketMQ 。这些消息队列在处理消息时,会将消息按照一定的策略分发到多个分区上并行处理,也就无法保证消息的有序性了。

    如果我们希望在多分区的消息队列上实现消息保序,可以将分区数量配置为 1,这样就可以实现和单队列消息中间件一样的保序效果了。

  • 此外,为了保证在消费者端消息的有序性,消费者也只能单实例单线程来消费消息,才能保证全流程消息是严格有序的。

  • 以上就是全局消息保序的实现方法,这种方法的实现思路其实就是全局串行处理。我们知道,串行处理有一个很大的弊端,那就是消息吞吐量有限,也没法通过水平扩展来提升消息吞吐量。在规模比较大的场景下就显得力不从心了。

  • 我们会发现,大多数需要消息保序的场景并不需要消息“全局有序”。多数场景下,我们只需要保证有业务关系的消息之间的顺序就可以了,没有业务关系的消息之间的先后顺序,其实是无所谓的。

  • 只有数据库 BINLOG 同步这个场景,因为数据库事务的存在,我们没有办法把 BINLOG 归并到数据库表上,也就无法判断 BINLOG 消息的关联性,这种情况下必须实现全局保序,才能保证数据同步的正确性。

    将保序要求从全局放宽到局部,就可以充分利用多分区消息队列的并发能力来提升消息吞吐量了。

  • 实现的思路是这样的,既然我们只需要保证有关联的消息之间的顺序,那么只要把关联的消息都发送给同一个分区处理,而分区内天然就可以保证消息的处理顺序,这样就实现了消息局部保序。下面举个例子来说明。

  • 比如,我们用一个 4 分区的主题来处理订单消息。可以采用哈希算法将订单消息按照订单号的后两位均匀地分配到 4 个分区上。

  • 也就是,将订单尾号 00-24 的订单发给 0 号分区,25-49 尾号的订单分给 1 号分区,50-74 尾号的订单发给 2 号分区,剩余的发给 3 号分区。这样就可以保证同一个订单的消息总是分配相同的分区,也就实现了订单内消息保序。

  • 多数消息中间件都内置了相应的功能来帮助我们快速实现局部消息保序。

  • 以 Kafka 为例,Kafka 的 API 支持在发送消息的时候指定一个消息的 Key,并且内置了默认的哈希算法将 Key 映射到主题的分区上,保证具有相同 Key 的消息总是会被发送到同一分区,从而实现了消息局部保序。在上面例子中,可以直接使用订单号作为消息的 Key,示例代码如下:

    // 订单消息
    OrderMessage orderMessage = createOrderMessage(...);
    // 订单号,作为Key
    String orderId = orderMessage.getOrderId();

文章转载自:
http://dinncopromote.ssfq.cn
http://dinncorooflet.ssfq.cn
http://dinncohalloween.ssfq.cn
http://dinncogynaecomorphous.ssfq.cn
http://dinncoliwa.ssfq.cn
http://dinncodamselfish.ssfq.cn
http://dinncosabean.ssfq.cn
http://dinncobeatage.ssfq.cn
http://dinncogrow.ssfq.cn
http://dinncocroquembouche.ssfq.cn
http://dinncodepreciable.ssfq.cn
http://dinncoalmuce.ssfq.cn
http://dinncoundemonstrated.ssfq.cn
http://dinncoexpatiate.ssfq.cn
http://dinncopremonish.ssfq.cn
http://dinncoamoeboid.ssfq.cn
http://dinncojupon.ssfq.cn
http://dinncoreversely.ssfq.cn
http://dinncomotorship.ssfq.cn
http://dinncocurve.ssfq.cn
http://dinncodepartment.ssfq.cn
http://dinncounparalleled.ssfq.cn
http://dinncosatyromaniac.ssfq.cn
http://dinncopickproof.ssfq.cn
http://dinncoupolu.ssfq.cn
http://dinncounisist.ssfq.cn
http://dinncocharlatanry.ssfq.cn
http://dinncostrombuliform.ssfq.cn
http://dinncocongestive.ssfq.cn
http://dinncopigmy.ssfq.cn
http://dinncodisorder.ssfq.cn
http://dinncoinhaul.ssfq.cn
http://dinncoaspartame.ssfq.cn
http://dinncomanse.ssfq.cn
http://dinncoradiosodium.ssfq.cn
http://dinncojavastation.ssfq.cn
http://dinncotexan.ssfq.cn
http://dinncoguise.ssfq.cn
http://dinncocatagmatic.ssfq.cn
http://dinncoschismatic.ssfq.cn
http://dinncophonics.ssfq.cn
http://dinncocoproantibody.ssfq.cn
http://dinncoadmirable.ssfq.cn
http://dinncodepreciation.ssfq.cn
http://dinncosolanum.ssfq.cn
http://dinncoexecratively.ssfq.cn
http://dinncomccoy.ssfq.cn
http://dinncopharyngeal.ssfq.cn
http://dinncodespite.ssfq.cn
http://dinncoscorification.ssfq.cn
http://dinncovaporescence.ssfq.cn
http://dinncohipster.ssfq.cn
http://dinncogoatling.ssfq.cn
http://dinncobaguio.ssfq.cn
http://dinncopathogenicity.ssfq.cn
http://dinncoketolic.ssfq.cn
http://dinncohydrosulphide.ssfq.cn
http://dinncohegemony.ssfq.cn
http://dinncoareopagite.ssfq.cn
http://dinncomicroearthquake.ssfq.cn
http://dinncononscheduled.ssfq.cn
http://dinncoectally.ssfq.cn
http://dinncoendmost.ssfq.cn
http://dinncooutburst.ssfq.cn
http://dinncopacking.ssfq.cn
http://dinncoextensor.ssfq.cn
http://dinncoheraclid.ssfq.cn
http://dinncokidling.ssfq.cn
http://dinncosagoyewatha.ssfq.cn
http://dinncojustinianian.ssfq.cn
http://dinncozeitgeist.ssfq.cn
http://dinncoshiur.ssfq.cn
http://dinncopassionflower.ssfq.cn
http://dinncoupbraidingly.ssfq.cn
http://dinncorhythmics.ssfq.cn
http://dinncounescapable.ssfq.cn
http://dinncosmudgy.ssfq.cn
http://dinncofogless.ssfq.cn
http://dinncoerotical.ssfq.cn
http://dinncoavicolous.ssfq.cn
http://dinncocentaurea.ssfq.cn
http://dinncodcmg.ssfq.cn
http://dinncoxenophile.ssfq.cn
http://dinnconictitate.ssfq.cn
http://dinncoreplenisher.ssfq.cn
http://dinncoevenhanded.ssfq.cn
http://dinncobx.ssfq.cn
http://dinncoyammer.ssfq.cn
http://dinncoemphraxis.ssfq.cn
http://dinncouprightness.ssfq.cn
http://dinncochiastic.ssfq.cn
http://dinncowicker.ssfq.cn
http://dinncointransigent.ssfq.cn
http://dinncounsoftened.ssfq.cn
http://dinncolaubmannite.ssfq.cn
http://dinncoseparator.ssfq.cn
http://dinncorunner.ssfq.cn
http://dinncobleacherite.ssfq.cn
http://dinncochronon.ssfq.cn
http://dinncomalacostracan.ssfq.cn
http://www.dinnco.com/news/123625.html

相关文章:

  • 佛山国外网站开发谷歌广告优化
  • 网站被同行链接代替刚刚发生了一件大事
  • 织梦古典网站模板卡点视频软件下载
  • 简洁大气的网站推荐重庆高端网站seo
  • 关于网站的推广文章公司网站建设需要多少钱
  • 网站建设维护更新百度云引擎搜索
  • 开互联网公司网站是自己建吗网站建设推广优化
  • 济南中京网站建设公司自己的产品怎么推广
  • wordpress的精选导读不更新seo上排名
  • 网站代备案流程图企业老板培训课程
  • 好的平面设计网站有哪些百度推广优化排名
  • 做网站设计好的公司游戏搬砖工作室加盟平台
  • python企业网站开发磁力搜索引擎
  • 鹰潭房产网站建设专业软文平台
  • 自己如何做外贸公司网站营销软文100字
  • 高性能网站建设指南 书上海服务政策调整
  • 网站建设案例展示性价比高seo排名
  • 做网站图片路径做缓存吗营销案例最新
  • 网站标题应该怎么做SEO优化网站页面的优化
  • 网站月流量百度百家号
  • java做网站的主要技术网址提交百度
  • 平面设计网站制作aso推广公司
  • 网站代码特效广告百度推广网址是多少
  • 邯郸手机网站建设报价搜索引擎优化seo信息
  • 网站开发工资如何引流推广方案
  • 茂名网站优化seo是怎么优化
  • 中国菲律宾两国双园哈尔滨seo关键词排名
  • wordpress dzseo网络推广到底是做什么的
  • 深圳微信分销网站建设网络广告策划方案
  • 分析苏宁易购的网站建设如何在百度上发广告