写点什么

在 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:301393
用户头像

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

关注

评论

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

第四章作业(二)

LouisN

想做技术自媒体实现财富自由?先看看广告报价吧,无编码学爬虫之二。

梦想橡皮擦

Python 28天写作 2月春节不断更 3月日更

数据库周刊59丨GaussDB(for openGauss)开放商用;人大金仓保障冬奥会演练顺利完成;MDL锁导致的MySQL问题分析;PG日志使用手册;达梦表空间查询;数据库笔试题面试题集……

墨天轮

MySQL 数据库 程序员 运维 postgre

加快布局区块链技术发展,助力网络强国建设

CECBC

区块链

2021年美团/字节跳动/腾讯面经总结:互联网工程师必备的面试1000题

比伯

Java 编程 程序员 架构 面试

四面美团开发岗,成功斩获offer,分享个人面经

Java架构之路

Java 程序员 架构 面试 编程语言

SQL Server 多表数据增量获取和发布 2.1

happlyfox

28天写作 3月日更

这个新春,你的云端安全守卫来咯 | 新服务上线

亚马逊云科技 (Amazon Web Services)

VR,正在上演一出“风月宝鉴”

脑极体

图解CyclicBarrier运动员接力赛

叫练

面试 AQS CyclicBarrier

javascript中的内存管理

程序那些事

JavaScript nodejs 内存管理 程序那些事

(28DW-S8-Day10) T型学习模式:迁移式学习

mtfelix

T型人才 28天写作 迁移学习 一万小时定律

产品经理训练营 - 第四章作业 (二)

joelhy

产品经理训练营

真实字节二面:什么是伪共享?

艾小仙

Java 程序员 字节跳动 面试

代码从业者

ES_her0

28天写作 3月日更

2021最新京东、字节跳动「3面面经」盘点大厂后端面试高频题

Java架构之路

Java 程序员 架构 面试 编程语言

七种分布式事务的解决方案,一次讲给你听

moon聊技术

#滴滴夜莺# Nightingale & Prometheus

漂洋散人

别梦依稀咒逝川,Ruby二十八年前|M1芯片Mac os系统配置Ruby(3.0.0) on Rails(6.1.1)开发环境(2021最新攻略)

刘悦的技术博客

ruby ruby-on-rails rubygems macOS Big Sur m1

打破垄断 上海发布自主研发树图区块链重大成果

CECBC

区块链

java学习笔记(一)

陈皮

Java

Docker 常用命令,还有谁不会?

xcbeyond

Docker 常用命令 28天写作

一线互联网大厂面经分享:阿里三面+头条四面+腾讯二面+美团四面

Java架构之路

Java 程序员 架构 面试 编程语言

环信大学 | 构建一套适合微服务的高可用架构

DT极客

前端上手Docker超详细基础教程

1024肥宅

Docker Linux 大前端 jenkins CI/CD

谁才是一级方程式赛车中的最强车手?

亚马逊云科技 (Amazon Web Services)

「两次遍历」要比「一次遍历」要慢 ... 为啥呀?为啥呀??

宫水三叶的刷题日记

面试 LeetCode 数据结构与算法

SuperBenchmarker sb在mac上的安装手记

edd

面试系列二:精选大数据面试真题JVM专项-附答案详细解析

五分钟学大数据

大数据 28天写作 3月日更

手写一个LRU缓存淘汰算法

Simon郎

Java 大数据 缓存 LRU 数据结构与算法

星环科技Sophon Edge边缘计算平台持续赋能千家万业

星环科技

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