架构师设计思想

作为一个架构师,思想先行,在开始一个产品的开发之前,要把方方面面考虑到;

总结一些工作中的思考:

一、技术设计需要考虑的点:

1、基于系统设计的六大原则,单一原则,开闭原则,接口隔离原则,里氏替换原则、知道最少原则、依赖倒置原则;

2、无状态原则

3、拆分的力度:系统、功能、模块、接口, 不同的角度都可以拆分成一个服务;

单体架构(所有业务在一个系统中)-->分布式架构(面向系统拆分,将一个业务拆分成多个子系统)-->微服务架构(SOA架构:面向服务拆分的架构)这里指的服务拆分的力度,相对前面更细,拆分的服务更多,力度更细

4、微服务的治理:限流、降级、熔断、恢复、隔离

二、业务设计需要考虑的点:

1、防重:重复的请求拒绝掉;

2、幂等:同一标识的多次请求的同一逻辑处理结果不变;

3、可溯源性,一个操作可以溯源,操作日志的全面性;

4、良好的反馈性:比如错误提示要求具体,除敏感信息需要模糊处理;其他信息提示需要细化。

5、模块可复用性:把通用的模块抽出公共方法

6、代码的备份:通过不同分支进行代码备份

7、数据的备份:运维定时将数据备份;

8、人员的备份:通过review代码达到AB角色业务备份;工具如:gerrit

三、软件质量标准的制定

1、可用性(最基本的要保证功能是符合业务流程的,达到业务可用)

2、可扩展性

3、可移植性

4、并发性(高可用)

5、兼容性

6、安全性

7、可靠性(容错、可恢复)

你可能感兴趣的:(技术之路,Java,面试,架构)