写点什么

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

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

关注

评论

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

一站式云安全保障,就用行云管家!完美保障!

行云管家

云计算 云安全 企业上云 云资源 云管理

如何跟踪log4j漏洞原理及发现绕WAF的tips

H

网络安全 漏洞

智慧社区小程序搭建,智慧平安社区解决方案

电微13828808271

优酷 Android 构建速度优化实践

阿里巴巴终端技术

android App Gradle 移动开发 客户端

饿了么小程序容器首屏秒开优化实践

阿里巴巴终端技术

小程序 App 移动开发 客户端 小程序容器

模块7作业

Asha

🏆【Alibaba中间件技术系列】「RocketMQ技术专题」RocketMQ消息发送的全部流程和落盘原理分析

洛神灬殇

RocketMQ 消息队列 Apache RocketMQ 12月日更

安全漏洞之任意文件上传漏洞分析

网络安全学海

黑客 网络安全 信息安全 渗透测试 安全漏洞

CRM系统如何帮助企业改变销售周期

低代码小观

程序员 销售管理 销售 CRM CRM系统

语音信号处理 4:汉语中语音的分类及韵律特性

轻口味

28天写作 12月日更

由IDC余热回收创新技术实践引出的跨界合作探讨

安第斯智能云

算力 碳中和 节能 跨界合作

“有创业者的地方,创业邦一直都在” 创业邦100未来独角兽峰会暨2021创业邦年会圆满落幕

创业邦

全球IT服务将增1.3万亿美元,联想持续布局智慧服务能力

科技大数据

Log4j2 Zero Day 漏洞 Apache Flink 应对指南

Apache Flink

大数据 flink log4j2

「Oracle」数据库字符集编码修改

恒生LIGHT云社区

数据库 oracle

恒源云(GPUSHARE)_[文本分类] 文本数据增强1(论文笔记)

恒源云

深度学习 语音识别

2021低代码平台推荐,每一个都具有10年行业开发经验!

J2PaaS低代码平台

低代码 低代码开发 低代码开发平台 地代码平台

[架构实战营] 模块七作业

张祥

架构实战营

微服务架构 | 如何利用日志链路追踪程序执行的慢SQL?

李尚智

性能分析 微服务治理 慢SQL 链路分析

干货分享!边云融合的时序时空数据库实践详解

百度开发者中心

物联网 时序数据库

区块链数字收藏品平台开发,数字藏品交易平台搭建

电微13828808271

如何开始移动网站测试

FunTester

测试 web测试 FunTester 移动端测试 响应式网页

如何在 GitHub 上高效阅读源码?

AlwaysBeta

GitHub 源码 源码分析 源码阅读 源码解析

CameraX ImageAnalysis

Changing Lin

12月日更

致敬全新的未来!创业邦100未来独角兽峰会暨2021创业邦年会成功举办

创业邦

重点人员管控系统开发搭建,指挥调度平台建设方案

电微13828808271

把酒言欢话聊天,基于Vue3.0+Tornado6.1+Redis发布订阅(pubsub)模式打造异步非阻塞(aioredis)实时(websocket)通信聊天系统

刘悦的技术博客

tornado 实时通信 Vue 3 web socket redis'

波卡生态的去中心化存储Crust Network | Hoo虎符研究院

区块链前沿News

波卡生态挖矿 Hoo虎符 虎符交易所 虎符研究院 去中心化存储

飞桨EasyDL桌面版正式发布 本地数据、本地网络、本地算力也能高效建模

科技热闻

情报信息分析研判系统搭建,情指勤一体化平台建设开发

电微13828808271

CSS之变量(二)条形加载条

Augus

CSS 12月日更

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