微服务 - 漫画版(下)

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
简介: 微服务 - 漫画版(下)

image.png

image.png



什么是微服务?微服务(Microservice Architecture)是近几年流行的一种架构思想,关于它的概念很难一言以蔽之。

究竟什么是微服务呢?我们在此引用 ThoughtWorks 公司的首席科学家 Martin Fowler 的一段话:


image.png



In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.


谷歌翻译如下:


简而言之,微服务架构风格是一种将单个应用程序作为一套小型服务开发的方法,每种应用程序都在自己的进程中运行,并与轻量级机制(通常是HTTP资源API)进行通信。 这些服务是围绕业务功能构建的,可以通过全自动部署机制独立部署。 这些服务的集中管理最少,可以用不同的编程语言编写,并使用不同的数据存储技术。


说了这么多概念,微服务有什么样的具体特点呢?


1.独立部署,灵活扩展传统的单体架构是以整个系统为单位进行部署,而微服务则是以每一个独立组件(例如用户服务,商品服务)为单位进行部署。


用一张经典的图来表现,就是下面这个样子:


image.png



图中左边是单体架构的集群,右边是微服务集群。


什么意思呢?比如根据每个服务的吞吐量不同,支付服务需要部署20台机器,用户服务需要部署30台机器,而商品服务只需要部署10台机器。这种灵活部署只有微服务架构才能实现。


而近几年流行的Docker,为微服务架构提供了有效的容器。


2.资源的有效隔离微服务设计的原则之一,就是每一个微服务拥有独立的数据源,假如微服务A想要读写微服务B的数据库,只能调用微服务B对外暴露的接口来完成。这样有效避免了服务之间争用数据库和缓存资源所带来的问题。



image.png



同时,由于每一个微服务实例在Docker容器上运行,实现了服务器资源(内存、CPU资源等)的有效隔离。


3.团队组织架构的调整微服务设计的思想也改变了原有的企业研发团队组织架构。传统的研发组织架构是水平架构,前端有前端的团队,后端有后端的团队,DBA有DBA的团队,测试有测试的团队。



image.png


而微服务的设计思想对团队的划分有着一定的影响,使得团队组织架构的划分更倾向于垂直架构,比如用户业务是一个团队来负责,支付业务是一个团队来负责。


image.png



当然,这种垂直划分只是一个理想的架构,实际在企业中并不会把团队组织架构拆分得这么绝对

微服务与面向服务架构SOA的区别



image.png

image.png


SOA是什么样子呢?可以是下面这样的Web Service:


image.png


也可以是下面这样的ESB企业服务总线:


image.png


总之,SOA架构强调的是异构系统之间的通信和解耦合,而微服务架构强调的是系统按业务边界做细粒度的拆分和部署。


image.png

image.png


微服务架构的不足


image.png

image.png

image.png

目录
相关文章
|
2月前
|
负载均衡 算法 Java
微服务面试篇
微服务面试篇
73 2
|
6月前
|
监控 测试技术 数据库
【面试宝藏】微服务架构详解
微服务架构将大型应用拆分成小型、独立的服务,每个服务专注特定业务功能,实现独立部署和扩展。优势包括故障隔离、技术多样性、开发灵活性。挑战包括服务发现、数据一致性及运维复杂性。RESTful用于构建Web API,微服务测试涵盖单元、集成、契约、端到端和性能测试。DDD帮助处理复杂业务逻辑,通过统一语言增强沟通。
59 2
|
7月前
|
Kubernetes Java 微服务
【从零开始学微服务】06.微服务架构的建设思路
大家好,欢迎来到万猫学社,跟我一起学,你也能成为微服务专家。
74 1
|
监控 Dubbo Java
温故知新-微服务技术篇
温故知新-微服务技术篇
62 0
|
设计模式 缓存 Devops
微服务架构最强讲解,那叫一个通俗易懂!
微服务架构(Microservice Architecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。你可以将其看作是在架构层次而非获取服务的
17823 2
微服务架构最强讲解,那叫一个通俗易懂!
|
消息中间件 负载均衡 Java
微服务架构一文详解,微服务其实真的不难
最近几年,微服务可谓是大行其道。在业务模型不完善,超大规模流量的冲击的情况下,许多企业纷纷抛弃了传统的单体架构,拥抱微服务。这种模式具备独立开发、独立部署、可扩展性、可重用性的优点的同时,也带来这样一个问题:开发、运维的复杂性提高。有人感觉微服务越做越不方便管理。
|
运维 监控 负载均衡
关于微服务的一些总结和经验之谈,来看看你都了解吗
关于微服务的一些总结和经验之谈,来看看你都了解吗
775 0
|
资源调度 运维 监控
重新认识微服务
随着互联网的发展,网站应用的规模不断扩大。需求的激增,带来的是技术上的压力。系统架构也因此也不断的演进、升级、迭代。从单一应用,到垂直拆分,到分布式服务,到SOA,以及现在火热的微服务架构,还有在Google带领下来势汹涌的Service Mesh。
133 0
重新认识微服务
|
监控 负载均衡 程序员
白话服务治理—高并发场景微服务实战(八)
你好,我是程序员Alan. 在正式引入微服务的各个组件之前,先通过一个面试中常见的问答来了解服务治理的全貌。 面试官:都在说微服务需要治理,那你说说什么是服务治理?为什么需要治理?可以简单介绍一下吗?
138 0
|
数据库 开发者 微服务
微服务 - 漫画版(上)
微服务 - 漫画版(上)
158 0
微服务 - 漫画版(上)