架构的一些元素认知
架构:
架构是针对应用程序(项目)的一种技术结构,遵循以应用的合理实现为主导的原则。
通常架构从5个方面满足其应用实现。
1:性能
2:高可用
3:伸缩性
4:扩展性
5:安全性
一:性能 性能主要从是在实际操作环境中,对于操作的响应能力。
通常体现在 对于高并发,大数据等的处理能力。
二:高可用 体现在对于复杂的运行环境中的容错能力。比如:宕机,数据库异常等时的
应对能力。
三:伸缩性:对于量级上的服务压力,是否能够平滑地进行系统规模地调整以满足服务要求
四:扩展性: 对于业务结构的变化,利用现存的资源形式是否能够合理有效的融合新模块的能力。
五:安全性:是否具有保障应用程序提供安全的服务的能力。
常用手段
架构整体常从多个维度对应用程序进行规划:
1:分层:层级的划分,有利于在共性的层面上统一化,将复杂的整体划分在层次及层次间的联系。
层级的划分有利于对于共性问题的统一处理,专注处理,有利于高效处理问题。
通常因为整体存在导向的问题,所以层次有高低之分,高层次依赖于低层次,低层次不依赖于
高层次。
复杂之处在于建立层次间的联系。如:数据传递
2:分割:在单一的层面间进行横向的划分,常在于任务的分割,以及层次内共性的抽取,被分割
者之间常是并存的联系。有利用被分割体处理的具体化。
3:缓存:缓存的意义在于获取数据时,缩短空间及时间。但会牺牲全局性而造成的不命中处罚。
但根据二八原则,整体上会是数据的获取能力大大提高。但需要根据具体需求缓存具体内容
包括:CDN,反向代理,页面缓存,缓存框架等,存在于数据传输的各个位置。
4:负载均衡 在于平衡载体间的负荷。是需要多个载体共同承载同一来源的处理请求时的
平衡各个载体处理量体的机制。在多对大的问题时需要。在性能,伸缩,可用等存在多个
载体应对同一大量处理时发挥作用。其原理在于,路由分配,失效切换。需要注重的是
在多个载体上对于切换时,对于失效载体上信息的转移。
5:消息队列 在处理器的处理消息的能力低于进入的消息数量的时候建立的一种缓冲数据容器,
利用队列的特性,可以达到削峰的能力。早期的Unix 系统的消息具有即时性随进程持续,
后期的发展可以将其生命周期脱离进程,而限定在存储上。
6:分布式: 对于由并存模块存在的整体,分割成多个模块/部分(任务),但在任务间存在这联系
分布式就是实现信息在任务间进行传递的管理中心。是对分割的具体实现。
7:集群 以多个载体分量,多个载体构成的整体就是集群。
浙公网安备 33010602011771号