29、微服务与系统架构全解析

微服务与系统架构全解析

1. CQRS 架构通信机制

在系统设计中,命令和查询端不一定要存在于两个或多个独立的应用程序中。只要功能仅通过事件存储发布的事件进行通信,它们可以存在于同一个应用程序内。例如,这可能会形成一个兼具服务员和厨师功能的单一应用程序,并且还能实现水平扩展。如果不需要分别扩展读写端,这是一种合理的权衡。

构建 CQRS 系统是实现异步、最终一致性通信的一种方法。通信形式有同步和异步之分。为了实现可扩展的应用程序,分布式系统不应依赖涉及多个系统的同步通信,因为这会导致分布式事务。

实现可扩展性的一种方法是对逻辑上的异步过程进行建模,例如使用 HTTP 等通信协议触发异步处理,同时调用者立即返回。这引入了最终一致性,但使系统能够扩展。

CQRS 通过为客户端提供外部接口(如 HTTP),而服务之间通过事件存储进行通信。一般来说,在设计分布式系统时,建议优先考虑可用性(即可扩展性)而非一致性。CQRS 就是将异步通信与事件溯源相结合的一种方法。

2. 企业中的数据和技术共享问题

企业中常见的做法是共享和重用技术以及常用数据。多个构成企业系统的应用程序通常使用相似的技术,这自然会引发共享技术的想法,比如使用共享模型。然而,共享数据库与分布式系统的理念相悖。常用数据库会紧密耦合相关应用程序,架构或技术的更改会将应用程序和项目的生命周期捆绑在一起,还会阻止应用程序进行扩展,这违背了分布式系统的初衷。

共享技术也存在类似问题。常用模块和依赖项会在实现中引入技术约束,限制应用程序的独立性。从系统的领域知识和责任角度来看,共享数据和技术意义不大。建议选择潜在的重复和独立性,而非技术上的耦合。 </

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值