flash 网站 模板,获取当前分类的父级wordpress,wordpress 注释模版,wordpress技术博客主题微服务概述
什么是微服务#xff1f;
答#xff1a;微服务#xff08;microservice#xff09;是基于业务领域建模的#xff0c;可独立发布的服务。它会把业务内聚的功能封装起来#xff0c;并通过网络供其他服务访问。将这样的服务组合起来构建出更复杂的系统。 微服务…微服务概述
什么是微服务
答微服务microservice是基于业务领域建模的可独立发布的服务。它会把业务内聚的功能封装起来并通过网络供其他服务访问。将这样的服务组合起来构建出更复杂的系统。 微服务特点
可独立部署围绕业务领域建模状态自主避免微服务之间共享数据库服务大小服务接口要可控灵活性微服务在组织、技术、规模、健壮性等多个具有可观的灵活性架构和组织的一致性 微服务与单体
单体
“系统中的所有功能必须一起部署时我们可以视它为一个单体。
单体又细分为单进程单体模块化单体依然是单进程分布式单体
单体的优势
开发流程简单系统监控故障排除和测试工作大大简化
微服务的优势
技术的异构性可以针对不同微服务业务特性使用不同技术满足不同业务的不同诉求。健壮性实现故障隔离。扩展性扩展灵活只需要按需扩展需要的微服务。部署便捷组织协调可组合
微服务的痛点
开发者体验本地开发需要启动微服务多。技术过载引入大量新技术。成本生成报表的成本变高监控和故障排除较复杂需要引入分布式可观测安全数据传输跨多服务对安全性提出了更高的要求。测试成本变大延迟数据在微服务之间进行序列化传输反序列化容易造成系统延迟问题数据一致性挑战
微服务建模
合理划分微服务边界
我们希望微服务能够独立更改和独立部署并将功能发布给用户。能够独立更改一个微服务而不影响其他微服务的能力至关重要。微服务建模过程中合理的划分微服务边界尤为重要。
要掌握以下三点对确立微服务边界至关重要。
信息隐藏内聚耦合
信息隐藏
将尽可能多的实现细节隐藏在微服务边界内部。
优势
提升开发效率“允许模块独立开发我们可以并行完成更多的工作并减少添加项目人员带来的影响。可理解性每个模块可以被独立的定位和理解可以更清楚的认知模块的定位。灵活性每个模块可以被独立的修改在不对其他模块修改的情况下依然可以对系统功能进行更改。此外模块还可以按不同的组合方式以提供新功能。
内聚
一起变化的代码应该组织在一起。将变更限制在尽可能小的范围内当业务需要变更时就更加容易了。
将相关行为放在一起将无关行为放在别处。如果一个功能的修改需要在很多地方更改功能上线时就要发布很多不同的服务一次部署很多服务是有风险的这要尽量避免。对于微服务架构我们的目标是要实现高内聚。
耦合
和内聚常常伴随出现的词汇就是耦合了耦合高就是一个服务的更改依赖于对另一个服务的更改。耦合低服务的更改不会影响到其他服务。这也是内聚的目标耦合和内聚的概念是一脉相承的。
目标高内聚低耦合
通过采用合适的技术实现方案可以降低耦合
在实际开发中服务之间的耦合是不可避免的但是我们要尽可能降低耦合比如两个服务有依赖关系根据对功能需求的评估这个功能可以异步调用不需要同步返回结果那么两个服务的调用可以尽量使用消息队列而不是直接依赖。
耦合的类型
耦合程度从低到高排序如下
领域耦合传递耦合公共耦合内容耦合 (未完待续)