关于架构设计
业务架构原则
从在软件开发的角度来看,在项目前期做好业务架构设计,对整个项目的开发都有重要的意义。由于业务和公司战略息息相关,其业务架构设计不是研发架构师能决定,当公司业务成长到一定规模的时候,业务架构就要确定一定的设计原则,比如针对电商平台:
1)、将业务平台化:
业务平台化,相互独立,例如交易平台、物流平台、支付平台、广告平台等。
基础业务下沉,可复用,例如用户、商品、类目、促销、时效等。
2)、将核心业务和非核心业务分离。
将电商系统的核心业务和非核心业务如主交易服务和通用交易服务分离,将核心业务精简(利于稳定),并将非核心业务多样化。
3)、隔离不同类型的业务。
交易平台的作用是让买家和卖家签订交易合同,所以需要优先保证高可用,让用户能快速下单。
履约业务对可用性没有太高要求,但要优先保证一致性。
秒杀业务对高并发要求很高,应该和常规业务分离。
4)、区分主流程和辅助流程。
要清楚哪些是电商系统的主流程,在运行时优先保证主流程的顺利完成;对辅助流程可以采用后台异步的方式,避免辅助流程的失败影响主流程的失败回流。
架构原则源于业务目标
系统级架构原则
架构真经
1、N+1设计 :开发的系统在发生故障时,至少有一个冗余的实例
2、回滚设计 :确保系统可以向后兼容。
3、禁用设计:可以关闭任何发布功能
4、监控设计 :在设计阶段就要考虑监控,而不是在部署完成后。
5、多活数据中心设计
6、采用成熟的技术
7、故障隔离 :
8、水平扩展
9、非核心则购买
10、使用商品化硬件
11、快速迭代
12、异步设计
13、无状态设计
14、前瞻性设计
15、自动化
https://guisu.blog.csdn.net/article/details/78258430