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

安丘网站建设便利的菏泽网站建设

安丘网站建设,便利的菏泽网站建设,wordpress python 自动,哪些网站做视频能赚钱笔者强烈推荐阅读的这本图书:《亿级流量系统架构设计与实战》 2.5.1 CQRS的简要架构与实现 为了避免引入微服务领域驱动设计的相关概念,图2-8给出了CQRS的简要架构。当业务服务收到客户端发起的command请求(即写请求)时&#xff0…

笔者强烈推荐阅读的这本图书:《亿级流量系统架构设计与实战》

2.5.1 CQRS的简要架构与实现

为了避免引入微服务领域驱动设计的相关概念,图2-8给出了CQRS的简要架构。

image-20250217221758491

  1. 当业务服务收到客户端发起的command请求(即写请求)时,会将此请求交给写数据存储来处理。
  2. 写数据存储完成数据变更后,将数据变更消息发送到消息队列。
  3. 读数据存储负责监听消息队列,当它收到数据变更消息后,将数据写入自身。
  4. 当业务服务收到客户端发起的query请求(即读请求)时,将此请求交给读数据存储来处理。
  5. 读数据存储将此请求希望访问的数据返回。

写数据存储、读数据存储、数据传输通道均是较为宽泛的代称,其中写数据存储和读数据存储在不同的高并发场景下有不同的具体指代,数据传输通道在不同的高并发场景下有不同的形式体现,可能是消息队列、定时任务等。

  • 对于数据库读/写分离来说,写数据存储是Master,读数据存储是Slave,消息队列的实现形式是数据库主从复制。
  • 对于分布式缓存场景来说,写数据存储是数据库,读数据存储是Redis缓存,消息队列的实现形式是使用消息中间件监听数据库的binlog数据变更日志。

无论是何种场景,都应该为写数据存储选择适合高并发写入的存储系统,为读数据存储选择适合高并发读取的存储系统,消息队列作为数据传输通道要足够健壮,保证数据不丢失。

2.5.2 更多的使用场景

为了加深对CQRS的理解,下面再列举两个使用场景。

(1)搜索场景

很多互联网应用都支持根据关键词搜索用户昵称的功能,例如,用户在微博找人模块中输入关键词“北京”,微博会返回“北京日报” “北京大学” “这里是北京”等账号。这是一个典型的搜索场景。然而,账号信息被存储在数据库中,无法高效应对搜索昵称的业务场景。

这时候就很适合使用CQRS模式,数据库作为写数据存储负责账号信息的管理;而读数据存储应该选择一个在搜索场景中表现优秀的存储系统,比如Elasticsearch,它是基于倒排索引的分布式搜索系统,很适合作为此业务场景的读数据存储,将搜索用户昵称的请求交给Elasticsearch处理。选定读数据存储和写数据存储后,通过消息中间件为两者建立数据关联:创建一个消费者服务并使用消息中间件监听数据库的binlog数据变更日志,在筛选出用户昵称有更改的日志后,将最新用户昵称更新到Elasticsearch中。

(2)多表关联查询场景

有些业务场景如运营后台需要查询复杂的业务数据,这时就要对数据库进行多表关联查询才能得到完整的数据。SQL多表关联查询join语句的底层实现是效率较低的嵌套循环。如果直接对线上数据库执行join语句,则会严重影响其性能。此外,对线上数据库一般都做了分库分表(参见2.6.1节),无法直接执行join语句。

在这个场景下也非常适合使用CQRS模式,提前将需要多表关联的数据进行聚合计算,并将聚合结果单独存储到一个包含全部关联字段的宽表中,查询时直接读取宽表中的聚合结果,而不用执行join语句。在此场景下应用CQRS模式的架构如图2-9所示, 其中:

image-20250217222316240

  • 数据库为写数据存储;
  • 宽表为读数据存储;
  • worker为执行数据聚合计算的服务;
  • 执行数据聚合计算的时机是数据库有数据变更时,worker服务使用消息中间件监听数据库的binlog数据变更日志,每收到一条数据变更日志就执行一次数据聚合计算。也可以采用定时计算的形式,比如worker每分钟执行一次数据聚合计算。在数据聚合计算完成后,worker将聚合结果写入宽表。

2.5.3 CQRS架构的特点

CQRS架构一般具有如下特点。

  • 写数据存储要选用写性能高的存储系统,而读数据存储要选用读性能高的存储系统,所以两者往往有不同的存储模型和存储选型。数据库读/写分离只是一个最简单的特例。
  • 读数据有延迟。写数据存储中的数据实时变更,而何时能从读数据存储中获取到最新数据,依赖数据传输通道的传输延迟。无论是消息队列还是定时任务都会带来一定的数据延迟,因此写数据存储和读数据存储仅保证数据的最终一致性。

总结

什么是CQRS呢?

  • CQRS(Command Query Responsibility Segregation,命令查询职责分离)是一种将数据的读取操作与更新操作分离的模式。
  • query指的是读取操作,而command是对会引起数据变化的操作的总称,新增、删除、修改这些操作都是命令。

CQRS的工作流程?

  1. 当业务服务收到客户端发起的command请求(即写请求)时,会将此请求交给写数据存储来处理。
  2. 写数据存储完成数据变更后,将数据变更消息发送到消息队列。
  3. 读数据存储负责监听消息队列,当它收到数据变更消息后,将数据写入自身。
  4. 当业务服务收到客户端发起的query请求(即读请求)时,将此请求交给读数据存储来处理。
  5. 读数据存储将此请求希望访问的数据返回。

CQRS架构的特点有哪些?

  • 写数据存储要选用写性能高的存储系统,而读数据存储要选用读性能高的存储系统,所以两者往往有不同的存储模型和存储选型。数据库读/写分离只是一个最简单的特例。
  • 读数据有延迟。写数据存储中的数据实时变更,而何时能从读数据存储中获取到最新数据,依赖数据传输通道的传输延迟。无论是消息队列还是定时任务都会带来一定的数据延迟,因此写数据存储和读数据存储仅保证数据的最终一致性。

文章转载自:

http://l5jXZWD7.rynqh.cn
http://MjWBln2H.rynqh.cn
http://GSqHXM8p.rynqh.cn
http://hGw8oN77.rynqh.cn
http://ZbGo75D9.rynqh.cn
http://Ce5kEgr2.rynqh.cn
http://3OVJ5fhl.rynqh.cn
http://5QL1opW2.rynqh.cn
http://XhhtwWGh.rynqh.cn
http://tKAmjbSO.rynqh.cn
http://rhjM9PIj.rynqh.cn
http://FffpHdQ6.rynqh.cn
http://jnkmK6zd.rynqh.cn
http://uYmqyFwN.rynqh.cn
http://TQuedG0I.rynqh.cn
http://LCjixo0e.rynqh.cn
http://yrlRNnUn.rynqh.cn
http://NrfWPD8o.rynqh.cn
http://6Z3TtICi.rynqh.cn
http://JZTQms8u.rynqh.cn
http://TczCM3MF.rynqh.cn
http://N27WA34O.rynqh.cn
http://Ex9LNAiQ.rynqh.cn
http://7etGQeMa.rynqh.cn
http://YKOPpyIN.rynqh.cn
http://bhywVcNk.rynqh.cn
http://YBQ4acYJ.rynqh.cn
http://bymvlBO6.rynqh.cn
http://tWYQ8PV8.rynqh.cn
http://aVLl2MLW.rynqh.cn
http://www.dtcms.com/wzjs/732273.html

相关文章:

  • 口碑好网站建设资源免费建网站家谱系统
  • 互联网网站定位第寒网站建设
  • 营销的五种理念排名优化哪家好
  • 横山专业做网站建设的公司wordpress加打赏按钮
  • 微信公众号做网站域名收录提交
  • 宜春网站建设联系方式做视频网站该把视频文件传到哪
  • 网站建设行业发展方向柳州电商网站建设
  • 美食网站建设规划书需求分析视频剪辑培训班
  • 企业网站建设效益分析心理网站开发背景
  • 南宁小程序开发网站建设公司旅游app推广营销策略
  • 网站建设属于什么费上海比较有名的公司
  • 企业网站使用不规范地图如何处罚如何网站数据备份
  • 临沂网站开发公司网站怎么做交易
  • 大型 交友 网站 建设 公司yahoo不收录我的网站
  • 郑州网站建设外贸wordpress 服务器配置
  • 建设网站的服务费是指什么如何建立一个好的网站
  • 建设银行网上流览网站截图域名网站.
  • 自己做的网站页面错误深圳网站建设托管
  • 手机端视频网站模板哈尔滨网站建设推广公司
  • 优秀的版式设计网站小程序第三方平台免费
  • 珠海做网站开发闲鱼上面给人做网站造退款
  • 旅游攻略网站开发背景软件工程师主要做什么
  • 用什么软件上传网站一般vs做的网站的总体框架
  • 上海电子商务网站建设延安网站建设哪家专业
  • 温州网上推广什么网站好wordpress 仿手机商城
  • 如何在vs做网站wordpress效果
  • iis做网站软文广告图片
  • 麻章手机网站建设公司文员短期电脑培训
  • 广州网站推广哪家强广告设计公司核心优势
  • 做网站ie10缓存软件项目管理是做什么