企业网站建设目的,南宁建设公司网站,太原网站开发,卖文具做网站好还是做电商好目录
一、单体架构VS微服务架构
1.单体架构
#xff08;1#xff09;.单体架构的优点
#xff08;2#xff09;.单体架构的缺点 2.微服务架构 #xff08;1#xff09;微服务的特性 #xff08;2#xff09;微服务架构图 #xff08;3#xff09;微服务的优点 …目录
一、单体架构VS微服务架构
1.单体架构
1.单体架构的优点
2.单体架构的缺点 2.微服务架构 1微服务的特性 2微服务架构图 3微服务的优点 4微服务的缺点 5微服务适用场景 6微服务不适用场景
二、微服务拆分
1. 微服务拆分--方法论
(1)领域驱动设计Domain Driven Design
(2)面向对象By name / by verb
2 微服务拆分--常用
1按职责划分
2按通用性划分
3 微服务拆分--合理的粒度
三、实际项目流程 一、单体架构VS微服务架构
1.单体架构
1.单体架构的优点
架构简单开发、测试、部署方便
2.单体架构的缺点
代码冗余质量参差不齐导致运维复杂性高部署慢全量部署频率低代码量大时更加明显扩展能力受限阻碍技术创新代码重构风险极高2.微服务架构 1微服务的特性
每个微服务可运行在自己的进程中意味着每个微服务都有自己的tomcat每个微服务都能独立运行共同构建整个系统每个服务为独立的业务开发一个微服务只关注某个特定的功能例如订单管理、用户管理。可使用不同的语言与数据存储技术契合项目的情况和团队实力微服务之间通过轻量的通信机制进行通信例如通过REST API进行调用。轻量通信机制通信协议需要轻量跨平台全自动的部署机制。自动化构建、部署、测试等等。2微服务架构图 3微服务的优点
单个服务更易于开发/维护单个服务是有限的业务。单个微服务启动较快局部修改易于部署技术栈不受限按需伸缩4微服务的缺点
运维要求高运维若干个jar所以需要全自动的运维部署机制分布式固有的复杂性重复劳动在相同开发语言下可以提取一共公共模块而不同语言是无法实现还是得重复5微服务适用场景
大型/复杂的项目。如果你的应用用单体架构可以搞定了就无需杀鸡用牛刀。有快速迭代的需求访问压力大的微服务是去中心化的。6微服务不适用场景
业务稳定需求几乎不会变迭代周期长没有快速迭代的需求
二、微服务拆分
1. 微服务拆分--方法论
(1)领域驱动设计Domain Driven Design
推荐两本书
《DDD的开山鼻祖》
《实现领域驱动设计》
(2)面向对象By name / by verb
通过名词或动词拆分
2 微服务拆分--常用
1按职责划分
规划好微服务的职责边界只关注职责范围内的业务比如订单服务
2按通用性划分
把通用性功能做成微服务比如用户中心消息中心 阿里的大中台与小中台其实也是按通用性只是中台是多个微服务的聚合。
3 微服务拆分--合理的粒度
良好地满足业务幸福感团队对微服务的维护不会觉得像单体一样冗余复杂部署也会高效增量迭代每个微服务相对独立每次发布只是有限的微服务持续进化技术优化风险可控微服务拆分是动态的可以会随着时间增减
三、实际项目流程
1、分析业务流程图、用例图、架构图等等主要任务是业务建模确定架构
2、确定业务流程评审
3.设计API我需要哪些API呢/数据模型表结构设计|类图|ER图等等
4.编写API