抽象系统及系统间交互
1.找出合理通用的领域/业务对象
2.职责单一的子系统
3.系统间通过消息,或者RPC进行调用
4.单向调用,禁止循环调用(启动,升级系统会有麻烦)
5.对业务进行抽象,而不是当前的产品需求(业务确定,接口和流程基本确定)
架构设计技术选型
1.架构看起来简单清晰,看起来就复杂,很可能是设计有问题(简单原则)
2.使用同事熟悉的技术,逐步迭代成理想的技术选型
3.设计的时候多考虑,实现的时候逐步迭代
4.使用成熟的技术
5.非核心购买
为演化进行设计
1.提前考虑数据的准确性及后期的数据分析统计需求
2.按照项目的目标,数据规模,性能,增长量提前测试,规划好系统
3.考虑性能,水平延展性,高可用,高并发,海量数据可能性
4.分离不变的和经常变化的部分
5.可配置化
6.开闭原则,接口隔离原则
7.避免过早优化,过度设计
考虑异常
1.回滚设计
2.故障隔离原则
3. 核心服务梳理,高可用,可降级
4.为异常进行设计和架构
5.业务监控
6.异常监控
7.接口自我保护,限流,熔断