2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

在 Windows Azure 中使用 CQRS

  • 2012-04-12
  • 本文字数:657 字

    阅读完需:约 2 分钟

CQRS 作为一种模式,适合需要高可伸缩性和性能的应用程序,它近来变得越来越流行。Mark Seemann 在文章《 CQRS On Windows Azure 》中,使用示例探究了如何在 Windows Azure 平台中使用这种模式。

CQRS 的意思是命令查询责任分离(Command Query Responsibility Segregation),这个模式所基于的想法是,你能够使用与读取信息不同的模型来更新信息。这让你可以对读取和写入操作区别对待,可能会使用不同的数据访问技术访问不同的数据库,甚至使用其他架构模式像 Eventual consistency Event Sourcing 。文中的一些关键点如下:

  • 总是要假设显示的数据是过期的,并使用 UI 正确地设置期望值(因为屏幕上当前数据无法提供任何保证)。
  • 当从 UI 处理请求的时候,创建一个命令,尽快发送(到队列中)并返回。在 Windows Azure 上,这可以通过在存储队列(Storage queues)上实现一个频道(Channel)做到。
  • 分离工作者的角色,它们可以选取从 UI 发送过来的命令消息并对其进行处理。
  • 让写入操作是幂等的(Idempotent),从而多次重新传送消息,而不会导致数据问题。
  • 使用乐观并发机制——在 Windows Azure 中,这可以通过使用 Etags(CloudBlob.Properties.ETag)做到。
  • 更新视图数据可以在另一个频道(Channel)中异步发生——然后就可以被控制器查询到。
  • 以非规范的方式读取数据,以提升读取的性能。

从总体上了解更多 CQRS 信息的好地方是 Rinat Abdullin 的 CQRS 开始页面。你还可以阅读 Martin Fowler关于这个主题的文章,或者阅读InfoQ 上Arunava Chatterji 写的最新文章《健康的架构

查看英文原文: CQRS With Windows Azure

2012-04-12 09:301627
用户头像

发布了 340 篇内容, 共 137.8 次阅读, 收获喜欢 13 次。

关注

评论

发布
暂无评论
发现更多内容

【技术人才懂的浪漫】TiDB 社区为你准备好了给另一半的“七夕节”礼物,回复:我要挑战,即可参与活动!

TiDB 社区干货传送门

SQL 改写系列六:谓词推导

OceanBase 数据库

Kafka Topic Partition Offset 这一长串都是啥?

华为云开发者联盟

后端 华为云

在互联网+的潮流中,企业客户服务该何去何从?

Baklib

互联网+ 客户服务

利用小程序运行时技术增强Flutter跨端开发属性

Speedoooo

flutter 小程序 移动开发 小程序容器

深入揭秘 epoll 是如何实现 IO 多路复用的

C++后台开发

网络编程 epoll IO多路复用 C++后台开发 C++开发

模块2作业

关于Java&JavaScript中(伪)Stream式API对比的一些笔记

山河已无恙

Java stream JavaScrip

软件研发团队如何管理成员工时,科学分配资源?

万事ONES

Python异常知多少

迷彩

Python 异常处理 7月月更

C 语言入门(八)

逝缘~

7月月更

【Docker 那些事儿】如何高效地搭建 Docker 私有仓库

Albert Edison

Docker Kubernetes 容器 云原生 7月月更

排队助手 | 2022年6月产品更新日志

天天预约

微信小程序 SaaS应用 排队工具 便民服务

零基础可以自学web前端技术吗

小谷哥

在web前端培训中怎么提升前端技术能力

小谷哥

数字藏品加速破圈,助力产业发现新机遇

智捷云

NFT 区块链数字藏品 数字藏品 智捷云 智捷云科技

WhaleDI消息队列稳定性提升实践

鲸品堂

中间件

字节跳动数据质量动态探查及相关前端实现

字节跳动数据平台

字节跳动 数据监控 数据探查

通过 MSE 实现基于Apache APISIX的全链路灰度

阿里巴巴云原生

Apache 阿里云 微服务 云原生 灰度发布

Mria+RLOG新架构下的EMQX 5.0如何实现1亿MQTT连接

EMQ映云科技

物联网 IoT mnesia emqx 7月月更

如何使用IDEA数据库工具连接TDengine?

TDengine

数据库 tdengine 时序数据库

快速构建企业级应用的开发平台

力软低代码开发平台

不同学习方式的web前端程序员有什么区别

小谷哥

web前端技术学习完后怎么找工作呢

小谷哥

企业遇到知识管理困境该怎么办?这里有解决方案!

Baklib

十分钟生成影视级室内设计效果,红星美凯龙设计云如何升级传统家居行业

阿里云弹性计算

gpu 智能家居 异构计算

5个开源组件管理小技巧

SEAL安全

安全 软件供应链 开源组件

四个简单例子教你通过用户行为记录提高用户体验

观测云

字节跳动CVPR 2022多项目夺魁,获模拟人脑感知、长视频理解挑战双料冠军

字节跳动视频云技术团队

计算机视觉 图像处理 图片处理 视频理解 视频云

零基础小白该如何选择web前端课程呢

小谷哥

项目越写越大,我是这样做拆分的

小鑫同学

项目架构 7月月更

在Windows Azure中使用CQRS_.NET_Roopesh Shenoy_InfoQ精选文章