云原生Service Mesh服务网格简单介绍-程序员宅基地

技术标签: 云原生  service_mesh  

serviceMesh是什么

Service Mesh是一个用于处理服务间通信的基础设施层,旨在实现云原生应用复杂服务拓扑中的可靠请求传递。其基本构成是一组与应用一起部署的轻量级网络代理,这些代理对应用来说是透明的。Service Mesh通过统一的方式来控制和处理服务间的通信,为微服务架构中的服务发现、负载均衡、故障恢复等提供了解决方案。

架构图

在这里插入图片描述
服务网格是用于处理服务间通信的专用基础设施层。它负责通过构成现代云原生应用程序的复杂服务拓扑可靠地传递请求。在实践中,服务网格通常被实现为一系列轻量级网络代理,这些代理与应用程序代码一起部署,而应用程序不需要知道。

他的定义中最有力的方面可能是它不再将代理视为孤立的组件,而是承认它们形成的网络本身就有价值。

在这里插入图片描述

Service Mesh主要作用

服务间通信控制:通过Service Mesh,开发者可以更加灵活地管理服务之间的调用关系,包括负载均衡、超时控制、重试策略等。此外,Service Mesh还可以实现服务的发现和注册,使得服务之间的调用更加可靠和高效。
网络通信可靠性:Service Mesh通过流量控制和服务路由等功能来提高网络通信的可靠性。例如,当某个服务出现故障或者超时时,Service Mesh会自动将请求转发到其他可用的服务实例上,保证服务的可用性。同时,它还可以实现熔断机制,避免服务的雪崩效应。

Service Mesh优点

1.提供对微服务之间通信的可见性和控制,使得开发人员可以更好地管理微服务之间的通信。
2.通过流量管理、故障恢复和安全等功能,提供更高的可靠性和安全性。
3.减轻开发人员的负担,使他们能够更专注于业务逻辑的实现。
Service Mesh的实现原理主要是基于一组轻量级的服务代理和应用逻辑的服务在一起部署。这些代理可以拦截和修改流量,以实现负载均衡、故障恢复和安全等功能。同时,Service Mesh还包含一个控制平面,负责管理数据平面中的代理,包括配置、路由、监控和安全等方面。
总的来说,Service Mesh为微服务架构中的服务间通信提供了全面而强大的支持,是云原生应用中的重要组成部分。然而,它也会增加系统的复杂性和延迟,并需要额外的硬件和软件资源,因此在选择是否使用Service Mesh时,需要根据具体的业务需求和场景进行权衡。

Service Mesh 开源项目

Service Mesh 开源项目有很多,以下是其中一些较为知名和流行的项目:

Istio:Istio 是由 Google、IBM 和 Lyft 共同开源的 Service Mesh 项目,它提供了完整的 Service Mesh 解决方案,包括服务发现、流量管理、策略实施、安全性和可观测性等功能。Istio 使用 Envoy 作为其数据平面,提供灵活的控制平面用于管理和配置 Service Mesh。

Linkerd:Linkerd 是 Service Mesh 领域的早期项目之一,由 Buoyant 公司开发和维护。它同样使用 Envoy 作为代理,提供了服务发现、负载均衡、熔断、重试等核心功能。Linkerd 注重性能和稳定性,并且在 Kubernetes 上有很好的集成。

Consul Connect:Consul Connect 是 HashiCorp 公司推出的 Service Mesh 解决方案,它与 Consul 服务发现和配置管理工具紧密集成。Consul Connect 使用内置的代理来管理服务之间的通信,并提供了加密、身份验证和授权等功能。

Moesif Mesh:Moesif Mesh 是一个专注于 API 管理和监控的 Service Mesh 项目。它提供了 API 网关、API 监控和日志记录等功能,帮助开发人员更好地理解和优化 API 性能。

Apache ServiceComb:Apache ServiceComb 是 Apache 软件基金会下的一个开源项目,旨在提供微服务架构下的完整解决方案,包括 Service Mesh 功能。它支持多种编程语言和框架,并提供了服务发现、负载均衡、配置管理等核心功能。

这些开源项目都有各自的特点和优势,选择哪个项目取决于具体的业务需求、技术栈和社区支持等因素。在使用之前,建议深入了解各个项目的功能、性能以及集成方式,以确保能够满足你的需求。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/mikewuhao/article/details/138157605

智能推荐

OpenBSD内核编译-程序员宅基地

文章浏览阅读1k次。OpenBSD内核配置http://www.loveunix.net/thread-43893-1-1.html 默认安装情况下,OpenBSD是不安装源代码书和内核源代码的。你可以在安装完成之后手工安装。如果你的安装CDROM上有的话,那么可以直接拷贝sys.tar.gz;如果没有的话,可以进入系统,然后连接Internet下载和安装官方网站上的当前版本源代码:[omni^3]# ftp ftp..._openbsd 编译内核

DirectUI----Become windowless 译文_directui文字超链接-程序员宅基地

文章浏览阅读3.2k次。原文地址:http://www.viksoe.dk/code/windowless1.htmA request on the Yahoo WTL newsgroup and a blog-article sparked some interest to look closer at creating a windowless user-interface. Traditionall_directui文字超链接

Linux下Java环境安装(含卸载)_linux下安装java流程图-程序员宅基地

文章浏览阅读145次。https://www.cnblogs.com/xuejiale/p/10504845.html_linux下安装java流程图

带你了解LVGL:一个开源的嵌入式图形库-程序员宅基地

文章浏览阅读1.1w次,点赞5次,收藏36次。本文的目的是介绍一个开源的嵌入式图形库- LVGL(Light and Versatile Graphics Library)。LVGL是一个适用于各种嵌入式平台和显示器的GUI库,它提供了丰富的控件、主题、动画、字体、图像等元素,以及灵活的布局和事件处理机制。本文将介绍LVGL的主要特点、架构、使用方法和应用领域,并且展示一些LVGL的示例和效果。_lvgl

【UE4 Animation】动画编辑器制作倒放动画效果_虚幻动画编辑器制作倒放动画效果怎么设置-程序员宅基地

文章浏览阅读4.4k次,点赞3次,收藏4次。原动画倒播动画如何制作最近使用动画编辑器倒播录制了一个箱子爆炸的动画,达到了物体复原的魔法效果。在动画编辑器中打开箱子爆炸动画,下方点击快退即可看到动画已经倒播了。点击录制,选择新建的资源路径。录制到想要的动画片段后,再次点击停止录制。打开刚录制的新动画资源后,通过下方的关键帧编辑界面可以删除重复或者不想要的关键帧片段,由此得到的就是倒播动画。..._虚幻动画编辑器制作倒放动画效果怎么设置

Java从键盘获取用户输入_获取键盘输入的用户信息-程序员宅基地

文章浏览阅读1.5k次。Java从键盘获取用户输入_获取键盘输入的用户信息

随便推点

mahout in action中文版-程序员宅基地

文章浏览阅读204次。2019独角兽企业重金招聘Python工程师标准>>> ...

Ubuntu安装RabbitMQ_ubuntu离线安装rabbitmq-程序员宅基地

文章浏览阅读1.5k次。在Ubuntu上安装RabbitMQ后,默认情况下,管理插件的访问是不允许的。为了使管理界面可访问,你需要在RabbitMQ服务器上配置一个新的用户,给予它管理员权限并设置相应的访问权限。检查RabbitMQ配置文件:检查RabbitMQ配置文件中的相关设置。检查RabbitMQ插件是否已启用:确认RabbitMQ管理插件已启用。在生产环境中,你应该创建一个具有严格访问权限的用户,限制管理界面的访问,并避免使用默认的。现在,你可以使用新创建的用户名和密码登录到RabbitMQ管理界面。_ubuntu离线安装rabbitmq

关于JavaScript的条件语句和循环语句_javascript 条件选择-程序员宅基地

文章浏览阅读352次。1.条件语句:if if-else else-if:if语句:demo:<script type="text/javascript">if(表达式){ document.write(输出); } </script>如果if中的表达式成立的话,就会执行一次输出语句,不成立的话就不会执行。if-else:demo: &lt_javascript 条件选择

ASP.NET 2.0 调用ASPJpeg组件生成文字水印_aspjpeglib-程序员宅基地

文章浏览阅读614次。using System.Reflection;//FLYSO Blog//加水印ASPJPEGLib.IASPJpeg flysoJpeg = new ASPJPEGLib.ASPJpeg();// 源图片路径String strPath = Server.MapPath("www.flyso.net");// 打开源图片flysoJpeg.Open( st_aspjpeglib

2-2 Coursera吴恩达《改善深度神经网络》第二周课程笔记-优化算法-程序员宅基地

文章浏览阅读3.1k次,点赞7次,收藏6次。上节课2-1 Coursera吴恩达《改善深度神经网络》 第一周课程笔记-深度学习的实践方面我们主要介绍了如何建立一个实用的深度学习神经网络。包括Train/Dev/Test sets的比例选择,Bias和Variance的概念和区别:high bias对应欠拟合,high variance对应过拟合。接着,我们介绍了防止过拟合的两种方法:正则化(如L2 regularization)和Dropout。然后,介绍了如何进行标准化输入,以加快梯度下降速度和精度。然后,我们介绍了梯度消失和梯度爆炸的概念和危害,