NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

关注

评论

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

如何正确理解线程机制中常见的I/O模型,各自主要用来解决什么问题?

PivotalCloud

Linux Linux Kenel

OneFlow源码解析:算子指令在虚拟机中的执行

OneFlow

虚拟机 源码解析 算子

一起畅聊「云+操作系统」!龙蜥社区亮相阿里巴巴开源开放周,完整议程来了

OpenAnolis小助手

数据库 操作系统 龙蜥社区 阿里巴巴开源开放周 开源共享

2022年裁员潮,失业程序员何去何从?

千锋IT教育

是什么影响了MySQL性能?

TimeFriends

8月月更

学Python爬虫,不看看m3u8文件如何加密?i春秋 m3u8 文件加密解析

梦想橡皮擦

Python 爬虫 8月月更

谷歌数据中心发生“电力事故”造成 3 人受伤

雨果

数据中心 谷歌

企业如何判断数据治理是否成功?

雨果

数据治理

使用CSS实现多种Noise噪点效果

dragonir

CSS html html5 css3

快速上手,征服三种不同分布式架构调用方案

知识浅谈

分布式 8月月更

开源一夏 | mysql5.7安装部署-yum安装

zhangpfly

MySQL 开源 linux运维 #开源 8月月更

Kyligence 通过 SOC 2 Type II 审计,以可信赖的企业级产品服务全球客户

Kyligence

国际权威鉴证标准 企业级数据分析

2022秋招前端面试题(十)(附答案)

helloworld1024fd

STM32封装ESP8266一键配置函数:实现实现AP模式和STA模式切换、服务器与客户端创建

DS小龙哥

8月月更

SQL与NoSQL最终会走向融合吗?

雨果

nosql sql

2022秋招前端面试题(九)(附答案)

helloworld1024fd

面试突击73:IoC 和 DI 有什么区别?

王磊

Java 常见面试题

JWT 实现登录认证 + Token 自动续期方案

CRMEB

50个Java面试必问的面试题,这里都给你整好了

千锋IT教育

从脚本到剪辑,影像大师亲授的后期制作秘籍

博文视点Broadview

Linux服务器端网络抓包和分析实战

程序员欣宸

Java Linux 8月月更

打工人的第27天-平凡但不平淡的日子

Amazing_eve

#开源

呵呵,JavaScript 真好玩(苦笑脸)

掘金安东尼

JavaScript 前端 8月月更

8月份DB-Engines 数据库排行榜最新战况

雨果

数据库

Gitlab刚发布一项禁止使用 Windows 的公司政策

雨果

gitlab Github'

Gartner再次重申了“数据编织”的重要价值

雨果

数据编织

中小规模网站架构

舟停江吹雪

Linux

短视频软件开发——平台同质化如何破局

开源直播系统源码

软件开发 直播源码 短视频直播源码 短视频直播系统源码

C++运算符重载(二)之左移运算符重载

CtrlX

c c++ 进阶 重载 8月月更

GPU加速Pinterest推荐模型,参数量增加100倍,用户活跃度提高16%

OneFlow

机器学习 深度学习 gpu

Open Office XML 格式里如何描述多段具有不同字体设置的段落

Jerry Wang

xml 微软 Office 8月月更 openOffice

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