20、软件架构与开发实践指南

软件架构与开发实践指南

1. 技术概述与常见问题解答

在软件开发中,有一种方法可以在写入数据时运行复杂的视图逻辑,从而避免在读取时运行这些逻辑。很多人会问,是否需要构建微服务来实现这些功能?答案是否定的,相关技术在微服务出现前约十年就已存在。聚合、领域事件和依赖倒置等技术是控制大型系统复杂性的有效方法。当为业务流程构建了一组用例和模型后,将其迁移到独立的服务相对容易,但这并非必要条件。

若使用 Django 进行开发,也有对应的解决方案,可参考相关附录内容。

2. 注意事项与阅读建议

2.1 注意事项

在实际应用中,有一些需要注意的地方:
- 可靠消息传递困难 :Redis 发布/订阅并非可靠的消息传递工具,不适合作为通用的消息传递工具。我们选择它是因为它熟悉且易于运行。在实际应用中,可以考虑使用 Event Store、RabbitMQ 或 Amazon EventBridge 等工具。Tyler Treat 在其网站 bravenewgeek.com 上有一些关于消息传递的优秀博客文章,如 “You Cannot Have Exactly-Once Delivery” 和 “What You Want Is What You Don’t: Understanding Trade-Offs in Distributed Messaging”,值得一读。
- 事务处理 :我们明确选择小型、专注的事务,这些事务可以独立失败。在实际应用中,需要监控事务是否失败,并具备重放事件的工具。使用事务日志作为消息代理(如 Kafka 或 EventSt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值