微服务概述

简介: 单体应用与微服务架构区别

image (1).png

如上图左侧为单体应用架构。在传统单体应用中,所有功能模块都在一个工程中编码、部署,即使是集群部署,也只是单体应用的水平复制。
如上图右侧为微服务架构。在微服务架构的项目中,每个应用会按照领域模型划分进行业务、功能聚合,由此拆分后聚合的应用往往:模型高度统一、职责清晰且收敛、应用与应用(领域与领域)之间边界清晰,并且提升了每个应用的独立性、扩展性。
除了应用拆分维度,微服务架构也保证了每个应用可以使用独立语言开发、独立数据存储技术,只要能保持对外统一交互语言即可,存储模型差异如下:
image.png
见上图,应用拆分之后对应每个应用会独立、或共享一个数据库,数据库的拆分维度除了要考虑领域边界,还要更多的考虑每个数据库的QPS、TPS,避免高频写操作集中在一个DB,由此起到给数据库减压的功效。
基于上述分析,单体架构存在的问题主要集中在:功能混淆、边界模糊、维护成本高、可靠性差等角度,对于后续应用的升级、扩展同样存在瓶颈。因此随着互联网的发展,我们必须解决上述问题,而微服务就是这样一种架构模式。

相关文章
|
3天前
|
存储 Java 数据库
【微服务系列笔记】微服务概述
本文对比了单体应用和微服务架构。单体应用中所有功能模块在一个工程中,而微服务则按领域模型拆分为独立服务,每个服务有明确边界,可独立开发、部署和扩展。微服务允许使用不同语言和技术栈,每个服务有自己的数据库。微服务架构的优点包括易于开发维护、技术栈开放和错误隔离,但缺点包括增加运维成本、调用链路复杂、分布式事务处理困难以及学习成本高。实现微服务通常涉及SpringCloud等开发框架和Docker等运行平台。
41 2
|
3天前
|
负载均衡 监控 Java
微服务课程之SpringCloud 概述及微服务搭建
微服务课程之SpringCloud 概述及微服务搭建
45 0
|
6月前
|
Kubernetes jenkins 持续交付
微服务轮子项目(43) -持续集成CICD概述
微服务轮子项目(43) -持续集成CICD概述
43 0
|
9月前
|
存储 缓存 开发框架
微服务概述
微服务概述
72 0
|
12月前
|
运维 Cloud Native 微服务
带你读《企业级云原生白皮书项目实战》——4.2.3 微服务概述
带你读《企业级云原生白皮书项目实战》——4.2.3 微服务概述
|
12月前
|
XML 数据采集 监控
带你读《Apache Dubbo微服务开发从入门到精通》—— 一、 配置概述(上)
带你读《Apache Dubbo微服务开发从入门到精通》—— 一、 配置概述(上)
91 1
|
12月前
|
XML Dubbo 前端开发
带你读《Apache Dubbo微服务开发从入门到精通》—— 一、 配置概述(下)
带你读《Apache Dubbo微服务开发从入门到精通》—— 一、 配置概述(下)
83 1
|
12月前
|
Dubbo 网络协议 Cloud Native
带你读《Apache Dubbo微服务开发从入门到精通》—— 一、 Dubbo通信协议设计概述(上)
带你读《Apache Dubbo微服务开发从入门到精通》—— 一、 Dubbo通信协议设计概述(上)
100 1
|
12月前
|
Dubbo 网络协议 Cloud Native
带你读《Apache Dubbo微服务开发从入门到精通》—— 一、 Dubbo通信协议设计概述(下)
带你读《Apache Dubbo微服务开发从入门到精通》—— 一、 Dubbo通信协议设计概述(下)
83 0
|
消息中间件 分布式计算 搜索推荐
【KafkaStream】微服务学习笔记十一:流式计算概述&KafkaStream入门
【KafkaStream】微服务学习笔记十一:流式计算概述&KafkaStream入门
358 0
【KafkaStream】微服务学习笔记十一:流式计算概述&KafkaStream入门