当前位置: 首页 > 科技观察

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

时间:2023-03-14 09:17:39 科技观察

服务网格的概念由来已久。自2017年提出并于2018年正式爆发以来,许多云厂商和互联网公司都在向服务网格靠拢。蚂蚁集团、美团、百度、网易等一线互联网公司,都有服务网格的落地应用。1、服务网格在我看来,服务网格是微服务架构的进一步升级。其核心目的是实现网络通信与业务逻辑的分离,让开发者更专注于业务实现。服务网格,也称为服务网格,是专门处理服务通信的基础设施层。它的主要功能是处理服务之间的通信,并负责请求的可靠传递。ServiceMesh,我们通常称之为第三代微服务架构。既然是第三代,就意味着是在原有微服务架构下的升级。2.演化历史为了更好的解释ServiceMesh,不得不说一下微服务架构部分。首先,当我们把一个电商系统拆分成一个微服务架构的时候,我们会得到这样一个架构,包括WebServer、Payment、Inventory等,这些微服务应用都会被部署到Docker容器或者Kubernetes集群中。由于各个服务的业务逻辑是独立的,例如payment实现支付的业务逻辑,order实现订单处理,Webserver实现对客户端请求的响应等,因此,service之间必须相互通信,以实现功能的完整性。例如,当用户将商品添加到购物车时,请求将发送到Web服务器,然后转发到购物车进行处理,并存储在数据库中。在这个过程中,每个服务都必须知道对方的通信地址,当有新节点加入时,需要动态维护这些通信地址。因此,在第一代微服务架构中,每个微服务除了实现业务逻辑外,还需要解决上下游寻址、通信、容错等问题。因此在二代微服务架构下引入了服务注册中心实现服务间的寻址,服务间的容错机制和负载均衡逐渐形成了一个独立的服务框架,比如主流的SpringCloud,或者Spring云阿里巴巴。在二代微服务架构中,负责业务开发的小伙伴不仅需要关注业务逻辑,还需要花费大量精力去处理微服务中的一些基础配置工作,虽然SpringCloud已经做到了尽可能的去完成这些事情,但是对于开发者来说,在学习SpringCloud,以及SpringCloud的配置和维护方面还是有很大的挑战。另外,也增加了整个微服务的复杂度。其实我认为“微服务中所有这些服务注册、容错、重试、安全等工作都是为了保证服务间通信的可靠性”。于是就有了第三代微服务架构ServiceMesh。原本模块化到微服务框架中的微服务基础能力,从一个SDK进一步演化为一个独立的代理进程——SideCar。SideCar的主要职责是负责各个微服务之间的通信,承载了原有二代微服务架构中的服务发现、调用容错、服务治理等功能。微服务的基础能力和业务逻辑迭代是完全解耦的。之所以称ServiceMesh为服务网格,是因为在大规模的微服务架构中,各个服务的通信都由SideCar代理,各个服务之间的通信拓扑图看起来像一个网格状。Istio是目前主流的ServiceMesh开源框架。以上是我对服务网格的理解。ServiceMesh架构其实就是云原生时代的微服务架构。对于大多数企业来说,还处于二代微服务架构下。因此,很多朋友可能无法知道。然而,技术正在快速迭代。有句话叫“时代抛弃你,连再见都不说”,就像有些在外包公司工作了10多年的人出来面试,发现很多公司都需要技术。堆栈,他不会。所以建议大家要时刻刷新自己的能力,保持竞争优势!最后把之前分享的信息全部整理成文字,希望能提高粉丝的通过率。