1 什么是架构
三要素:
1、 构件
2、 构件之间的关系
3、 构件与环境之间的关系
2 软件架构原则2.1 全面解耦原则
对业务进行抽象建模,业务数据与业务逻辑解耦,软件和硬件解耦,平台和产品解耦,系统各部件间解耦
什么是系统的耦合性耦合性(Coupling),也叫耦合度,是对系统模块间依赖或关联程度的度量 。耦合的强弱取决与模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少 。模块间依赖或联系越多,其耦合性越强,同时表明其独立性越差 。系统耦合性的评估标准(耦合性依次从强到弱)(1)内容耦合: 当一个模块直接修改或操作另一个模块的数据,或者直接转入另一个模块时,就发生了内容耦合 。此时,被修改的模块完全依赖于修改它的模块 。(2)公共耦合: 若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合 。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等 。(3)外部耦合: 一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合 。(4)控制耦合: 一个模块在界面上传递一个信号(如开关值、标志量等)控制另一个模块,接收信号的模块的动作根据信号值进行调整,称为控制耦合 。(5)标记耦合: 模块间通过参数传递复杂的内部数据结构,称为标记耦合 。此数据结构的变化将使相关的模块发生变化 。(6)数据耦合: 模块间通过参数传递基本类型的数据,称为数据耦合 。(7)非直接耦合: 模块间没有信息传递时,属于非直接耦合 。如果模块间必须存在耦合,就尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,坚决避免使用内容耦合 。2.2 服务化/组件化原则
以服务、数据为中心,构建服务化、组件化架构,具备灵活、按需组合的能力
乐高式微服务组合,更适合快速变化业务更小粒度扩缩,提升资源效率良好的解耦显著提升敏捷性各微服务之间独立开发、独立发布、独立部署2.3 接口隔离及服务自治原则
通过接口隐藏服务/组件的实现细节,服务/组件间只能通过接口进行交互,接口契约化、标准化,跨版本兼容;服务、组件可独立发展、独立发布、独立升级;服务自治,可视、可管、可控、可测、可维、故障自愈 。
服务注册
微服务A(Pod1,2,…) 通过K8s Service访问到Service Center并进行注册
微服务A订阅微服务B~n,Service Center将现有微服务B~n的访问列表返回给微服务A
服务动态调整自适应某个微服务有新的POD注册上去之后,Service Center会主动推送给关联微服务
服务访问
A需要访问B时,可以直接根据 IP+Port访问
服务注销
微服务的Pod到Service Center注销,并通知到关联的微服务
2.4 弹性伸缩原则
构建全分布式云化架构,或借鉴云化架构思想,每个服务具备横向扩展能力,支持按需使用、自动弹性伸缩,可动态替换、灵活部署,支撑高性能、高吞吐量、高并发、高可用业务场景
2.5 用户体验和自动化运维原则
面向业务获取和使用场景,构建实时、按需、在线、自助、社区化、方便易用的用户体验;支持远程、自动、智能、安全、高效地完成网规/网设、安装、部署、调测、验收、扩缩容、软件升级、打补丁、日常维护、问题处理
2.6 开放生态原则
面向生态场景,按需开放平台设施、中间件、数据、业务逻辑、UI等能力,构建开放生态,支持分层、远程、自动、自助、简单高效地完成定制、集成、第三方应用开发
推荐阅读
- 什么是鸡架
- 书架和书柜的简笔画 书架和书柜
- 神农架野人之谜 神农架真的有野人吗?
- 夫妻经常吵架怎么办呢 夫妻经常吵架怎么办
- 大数据管理与应用专业冷门吗 发展前景怎么样
- 天地劫9月28日更新内容 天地劫幽城再临诸葛艾皮肤圆波又漪上架国庆活动开启
- 夫妻吵架是什么原因
- 孩子和同学打架了作为家长该怎么办
- 女人最潇洒的分手方式
- 老家有个小院子,房前屋后开满花,葡萄架下喝杯茶!