三个技术认知
架构设计认知
例子:一个交易流程系统拆分为三个子系统
总结:先分析单体架构所带来的问题,明确拆分逻辑,从复杂度和成本说明了可用性。
为什么做架构拆分?解耦
为什么做系统解耦?职责单一
为什么做职责单一?提高开发效率
分析问题的认知
讲问题如何解决的时候 要结合项目所处阶段的主要矛盾。
能力边界的认知
如何从架构师视角看设计方案?
如果一个项目耦合度很高怎么解决?
复杂度分析
功能性复杂度:项目中实际的问题。如:高耦合。
解决方案
评估标准
技术实现
如何设计海量商品数据的存储?
主要考察数据的存储、分布、复制、协议相关算法。
存储
哈希分片
优点:实现简单
缺点:扩展麻烦
一致性哈希
如何解决单一热点数据问题?
做范围分片
如何保证数据服务的可用性和数据一致性
最直接的方式是专门给元数据做一个服务集群,并通过一致性算法复制数据。分片元数据做集群服务,并通过ETCD存储数据分片信息每个数据存储实例节点定时向元数据服务集群同步心跳和分片信息。