AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

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

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

关注

评论

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

Python图像处理丨如何调用OpenCV绘制直方图

华为云开发者联盟

Python 人工智能

培训机构与自学的优缺点都有什么

小谷哥

Github又火了!阿里重发系统设计核心原理全彩笔记,上线两天破百万阅读

Java工程师

Java 高并发

MySQL 概念

武师叔

8月月更

编译器工程师眼中的好代码(1):Loop Interchange

openEuler

开源 编译器 openEuler

倪光南:openEuler已达国际同类社区水准

openEuler

开源 操作系统 openEuler

【七夕限定盲盒抽奖】一文带你搞懂盲盒抽奖的页面配置

hum建应用专家

阿里云 Serverless 函数计算

认识一下MRS里的“中间人”Alluxio

华为云开发者联盟

大数据 MRS

最具有中国特色的微服务组件!阿里新一代SpringCloud学习指南

JAVA活菩萨

Java 程序员面试 大厂技能 秋招 大厂面经

北京零基础前端软件培训

小谷哥

语音聊天app开发——开发人员如何进行代码分析

开源直播系统源码

软件开发 直播源码 语音app开发

【计算讲谈社】第七讲|AI 的价值探索:如何拓展商业边界?

大咖说

人工智能 AI 商业边界

【云原生】Spring Cloud是什么?Spring Cloud版本介绍

java李杨勇

Java spring cloud stream 签约计划第三季

AIRIOT答疑第7期|如何快速提升物联网项目交付速度?

AIRIOT

物联网

Jmix - 业务系统高效开发的少代码平台

世开 Coding

Java spring 快速开发平台 Jmix 少代码

优化客户服务的 7 个关键步骤

Geek_da0866

阿里P8整理的《百亿级并发系统设计》实战教程,实在是太香了

冉然学Java

数据库 编程 架构 分布式 并发系统设计

MASA Stack 第三期社区例会

MASA技术团队

Framework blazor

Centos系统安装MySQL数据库

杨杰灵

MySQL 数据库

编译器工程师眼中的好代码:Loop Interchange

华为云开发者联盟

c c++ 开发 编译器

观测云入驻青云云市场,提升云上系统统一可观测能力

观测云

苦熬三个月整理的spring全家桶PDF版限时分享,整整400页

Java工程师

Java spring Spring全家桶

Eclipse Debug FFmpeg

贾献华

8月月更

深入Linux内核IO技术栈

C++后台开发

Linux内核 内核开发 驱动开发 嵌入式开发 内核操作系统

兆骑科创高层次人才创业赛事活动,创新创业人才引进平台

兆骑科创凤阁

playwright录制脚本

和牛

测试 Python. 8月月更

专访容智信息柴亚团:最低调的公司如何炼成最易用的RPA?

王吉伟频道

RPA 机器人流程自动化 0代码 容智信息 柴亚团

企业为什么要数字化转型?数字化转型成功的案例有哪些?

优秀

数字化转型

学习大数据开发技术后好找工作吗?

小谷哥

47K Star 的SpringBoot+MyBatis+docker电商项目,附超详细的文档

冉然学Java

数据库 项目 java; 编程、 源码学习

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