什么是服务网格?在微服务体系中又是如何使用的?

简介: 有一位粉丝问私信问我的面试题,他说“什么是服务网格”?服务网格这个概念出来很久了,从 2017 年被提出来,到 2018 年正式爆发,很多云厂商和互联网企业都在纷纷向服务网格靠拢。像蚂蚁集团、美团、百度、网易等一线互联网公司,都有服务网格的落地应用。

有一位粉丝问私信问我的面试题,他说“什么是服务网格”?


服务网格这个概念出来很久了,从 2017 年被提出来,到 2018 年正式爆发,很多云厂商和互联网企业都在纷纷向服务网格靠拢。像蚂蚁集团、美团、百度、网易等一线互联网公司,都有服务网格的落地应用。


今天我给大家来详细聊一聊。

1、服务网格

我认为,服务网格是微服务架构的更进一步升级,它的核心目的是实现网络通信与业务逻辑的分离,使得开发人员更加专注在业务的实现上。


服务网格,也就是 Service Mesh,它是专门用来处理服务通讯的基础设施层。它的主要功能是处理服务之间的通信,并且负责实现请求的可靠性传递。Service Mesh,我们通常把他称为第三代微服务架构,既然是第三代,那么意味着他是在原来的微服务架构下做的升级。

a1a8e190b95402402389adf4c4375056.jpg

2、演变历史

为了更好的说明 Service Mesh,那我就不得不说一下微服务架构部分的东西。首先,当我们把一个电商系统以微服务化架构进行拆分后,会的到这样的一个架构,其中包括 WebServer、Payment、inventory 等等。

e4602c111c197585148f955a8f53cae6.jpg

这些微服务应用,会被部署到 Docker 容器、或者 Kubernetes 集群。由于每个服务的业务逻辑是独立的,比如 payment 会实现支付的业务逻辑、order 实现订单的处理、Webserver 实现客户端请求的响应等。

18f936ec4f1547cd51775b3db72f9152.jpg

所以,服务之间必须要相互通信,才能实现功能的完整性。比如用户把一个商品加入购物车,请求会进入到 Webserver,然后转发到 shopping cart 进行处理,并存到数据库。


而在这个过程中,每个服务之间必须要知道对方的通信地址,并且当有新的节点加入进来的时候,还需要对这些通信地址进行动态维护。所以,在第一代微服务架构中,每个微服务除了要实现业务逻辑以外,还需要解决上下游寻址、通讯、以及容错等问题。

26cf6f6a17ed40949c5ba79282592c2c.png

于是,在第二代微服务架构下,引入了服务注册中心来实现服务之间的寻址,并且服务之间的容错机制、负载均衡也逐步形成了独立的服务框架,比如主流的Spring Cloud、或者 Spring Cloud Alibaba。


在第二代微服务架构中,负责业务开发的小伙伴不仅仅需要关注业务逻辑,还需要花大量精力去处理微服务中的一些基础性配置工作,虽然 Spring Cloud 已经尽可能去完成了这些事情,但对于开发人员来说,学习 Spring Cloud,以及针对Spring Cloud 的配置和维护,仍然存在较大的挑战。另外呢,也增加了整个微服务的复杂性。


实际上,我认为,“微服务中所有的这些服务注册、容错、重试、安全等工作,都是为了保证服务之间通信的可靠性”。于是,就有了第三代微服务架构,Service Mesh。

1b59f1425862569a62433a83bf8f2b2f.jpg

原本模块化到微服务框架里的微服务基础能力,被进一步的从一个 SDK 中演进成了一个独立的代理进程-SideCar。


SideCar 的主要职责就是负责各个微服务之间的通信,承载了原本第二代微服务架构中的服务发现、调用容错、服务治理等功能。使得微服务基础能力和业务逻辑迭代彻底解耦。


之所以我们称 Service Mesh 为服务网格,是因为在大规模微服务架构中,每个服务的通信都是由 SideCar 来代理的,各个服务之间的通信拓扑图,看起来就像一个网格形状。

6b993b7b3556e5fcf00aa59e9b7068c6.jpg

Istio 是目前主流的 Service Mesh 开源框架。


以上就是我对服务网格的理解。Service Mesh 架构其实就是云原生时代的微服务架构,对于大部分企业来说,仍然是处在第二代微服务架构下。


所以,很多小伙伴不一定能够知道。不过,技术是在快速迭代的,有一句话叫“时代抛弃你的时候,连一句再见也不会说”,就像有些人在外包公司干了 10 多年再出来面试,发现很多公司要求的技术栈,他都不会。所以,建议大家要时刻刷新自己的能力,保持竞争优势!


我是被编程耽误的文艺Tom,关注我,面试不再难!


最后,我把往期分享的面试题全部整理成了1份10W字的文档,希望能够以此来提高各位粉丝的通过率

ee90d9963df444db88b33d6e798a5b94.gif

相关文章
|
4月前
|
敏捷开发 运维 监控
探索微服务架构下的服务网格
【5月更文挑战第29天】 在现代软件开发的复杂多变环境中,微服务架构已成为构建分布式系统的热门选择。随着其应用的广泛化,服务网格(Service Mesh)这一概念应运而生并迅速崛起,它旨在提供一种透明且高效的方式来管理服务间的通信。本文将深入探讨服务网格的核心组件、运作机制以及如何通过服务网格优化微服务架构。我们还将讨论服务网格引入的挑战与克服这些挑战的策略,为采用微服务的企业提供指导和见解。
|
20天前
|
运维 负载均衡 监控
探索微服务架构下的服务网格(Service Mesh)实践之路
【8月更文挑战第30天】 在当今日益复杂的分布式系统中,微服务架构已成为众多企业解决系统扩展与维护难题的利器。然而,随着服务的不断增多和网络交互的复杂性提升,传统的微服务管理方式开始显得力不从心。服务网格(Service Mesh)作为一种新兴的解决方案,旨在通过提供应用层的网络基础设施来简化服务间通讯,并增强系统的可观察性和安全性。本文将分享我在采用服务网格技术过程中的经验与思考,探讨如何在现代云原生环境中有效地实施服务网格,以及它给开发和运维带来的变革。
|
2月前
|
Kubernetes Cloud Native 持续交付
云原生架构的核心组成部分通常包括容器化(如Docker)、容器编排(如Kubernetes)、微服务架构、服务网格、持续集成/持续部署(CI/CD)、自动化运维(如Prometheus监控和Grafana可视化)等。
云原生架构的核心组成部分通常包括容器化(如Docker)、容器编排(如Kubernetes)、微服务架构、服务网格、持续集成/持续部署(CI/CD)、自动化运维(如Prometheus监控和Grafana可视化)等。
|
2月前
|
敏捷开发 设计模式 运维
探索微服务架构中的服务网格
【7月更文挑战第30天】在现代软件工程中,微服务架构因其灵活性和可扩展性而备受推崇。然而,随着系统规模的扩大,服务之间的通信和管理变得日益复杂。服务网格作为解决这一问题的新兴技术,提供了一种透明、可靠的服务到服务通信方式。本文将深入探讨服务网格的核心概念、实现原理以及其在微服务架构中的应用实践,为读者呈现一个关于如何利用服务网格优化微服务间通信的全景视图。
38 0
|
4月前
|
负载均衡 安全 开发者
探索微服务架构中的服务网格
【5月更文挑战第25天】 在现代软件工程实践中,微服务架构已成为构建和部署分布式系统的主流方式。随着其流行度的提升,管理这些微服务之间的交互变得日益复杂。服务网格(Service Mesh)作为一种基础设施层,旨在处理服务间的通信,并提供服务发现、负载均衡、故障管理等功能。本文将探讨服务网格在微服务体系结构中的作用,以及如何利用它来优化分布式系统的可靠性和性能。
|
4月前
|
设计模式 监控 安全
探索微服务架构下的服务网格
【5月更文挑战第16天】 随着现代软件系统向着复杂、动态和分布式的方向发展,传统的单体应用逐渐演变为更加灵活的微服务架构。在这一转变过程中,服务网格(Service Mesh)作为一种创新的基础设施层,正逐渐成为组织实现微服务治理的新宠。本文将探讨服务网格的基本概念、它在微服务架构中的作用以及它如何简化分布式系统的复杂性。通过对服务网格深入剖析,我们将了解其在提高系统可观测性、安全性及容错能力方面的独特价值,并探讨其对企业技术战略的影响。
|
4月前
|
运维 负载均衡 监控
探索微服务架构下的服务网格
【5月更文挑战第17天】 在当代软件开发领域,微服务架构已成为构建可扩展、灵活且容错的系统的首选模式。然而,随之而来的复杂性问题也日益凸显,特别是在服务间的通信管理上。服务网格(Service Mesh)作为一种新兴的解决方案,专门处理服务到服务的通信问题,旨在提供一种更加智能和动态的方式来管理微服务环境中的流量和服务依赖。本文将深入探讨服务网格的概念、优势以及如何在微服务架构中实现高效通信。
|
4月前
|
监控 负载均衡 数据安全/隐私保护
探索微服务架构下的服务网格(Service Mesh)实践
【5月更文挑战第6天】 在现代软件工程的复杂多变的开发环境中,微服务架构已成为构建、部署和扩展应用的一种流行方式。随着微服务架构的普及,服务网格(Service Mesh)作为一种新兴技术范式,旨在提供一种透明且高效的方式来管理微服务间的通讯。本文将深入探讨服务网格的核心概念、它在微服务架构中的作用以及如何在实际项目中落地实施服务网格。通过剖析服务网格的关键组件及其与现有系统的协同工作方式,我们揭示了服务网格提高系统可观察性、安全性和可操作性的内在机制。此外,文章还将分享一些实践中的挑战和应对策略,为开发者和企业决策者提供实用的参考。
|
4月前
|
运维 负载均衡 安全
探索微服务架构下的服务网格
【5月更文挑战第30天】 在当今日益复杂的分布式系统设计中,微服务架构已成为一种主流解决方案。然而,随着服务的增多和网络交互的复杂化,传统的服务发现与负载均衡机制变得不再适应。本文将探讨服务网格这一创新概念,它是一种专门针对微服务架构设计的基础网络设施,旨在提供更高效、动态且可靠的服务间通信。通过分析其工作原理及带来的优势,我们将深入了解服务网格如何简化微服务的管理并提升系统的整体性能。
|
4月前
|
运维 监控 负载均衡
探索微服务架构下的服务网格(Service Mesh)实践之路
【4月更文挑战第30天】 在现代云计算的大背景下,微服务架构以其灵活性和可扩展性成为众多企业转型的首选。然而,随着服务的激增和网络交互的复杂化,传统的服务通信模式已无法满足需求,服务网格(Service Mesh)应运而生。本文通过分析服务网格的核心组件、运作机制以及在企业中的实际应用案例,探讨了服务网格在微服务架构中的关键作用及其带来的变革,同时提出了实施过程中面临的挑战和解决策略。