微服务治理框架springcloud与istio对比

author author     2022-12-20     215

关键词:

目前主流的微服务治理框架主要是Spring Cloud。而Istio作为新一代微服务框架,越来越受到关注。Istio被引入的主要原因是传统微服务存在以下问题。

  • 多语言技术栈不统一:C++、Java、PHP、Go。Spring Cloud无法提出非Java语言的微服务治理。
  • 服务治理周期长:微服务治理框架与业务耦合,上线周期长,策略调整周期长。
  • 产品能力弱:Spring Cloud缺乏平台化和产品化的能力,可视化能力弱。

那么如何选择Spring Cloud与Istio,这里有个简单的对比。

微服务治理框架Spring

如果企业的开源语言主要是Java、更新升级不频繁、无过多高级治理功能需求、业务规模不是非常大,使用Spring Cloud是比较合适的。那么引入Istio的成本如何?

微服务治理框架Spring

Spring Cloud和Istio实现的企业微服务治理进行对比。

微服务治理框架Spring

从开放性以及先进性角度来说,建议将服务网格Istio作为首选微服务应用框架。Istio运维方面的建议包括版本选择、备用环境、评估范围、配置生效、功能健壮性参考、入口流量选择。当然,这些建议都是基于当前的使用情况。随着Istio使用越来越广泛,相信最佳实践将会越来越丰富。

  1. 版本选择

Istio是一个迭代很快的开源项目。频繁的版本迭代会给企业带来一些困扰:是坚持使用目前已经测试过的版本,还是使用社区的最新版本?出于安全性和稳定性的考虑,红帽Istio往往比社区要晚两个小版本左右。因此建议使用红帽Istio的最新版本。目前看,社区的最新版本的Istio的稳定性往往不尽如人意。

  1. 备用环境

针对相同的应用,在环境中部署一套不被Istio管理的环境。这样做的好处是,每当进行Istio升级或者部分参数调整时都可以提前进行主从切换,让流量切换到没有被Istio管理的环境中,将Istio升级调整验证完毕后再将流量切换回来。

  1. 评估范围

由于Istio对微服务的管理是非代码侵入式的。因此通常情况下,业务服务需要进行微服务治理,需要被Istio纳管。而对于没有微服务治理要求的非业务容器,不必强行纳管在Istio中。当非业务容器需要承载业务时,被Istio纳管也不需要修改源代码,重新注入Sidecar部署即可。

  1. 配置生效

如果系统中已经有相关对象的配置,我们需要使用oc replace -f指定配置文件来替换之前配置的对象。Istio中有的配置策略能够较快生效,有的配置需要一段时间才能生效,如限流、熔断等。新创建策略(oc create -f)的生效速度要高于替换性策略(oc replace -f)。

因此在不影响业务的前提下,可以在应用新策略之前,先删除旧策略。此外,Istio的配置生效,大多是针对微服务所在的项目,但也有一些配置是针对Istio系统。因此,在配置应用时,要注意指定对应的项目。

  1. 功能健壮性参考

健壮性较强的功能有基于目标端的蓝绿、灰度发布,基于源端的蓝绿、灰度发布,灰度上线,服务推广,延迟和重试,错误注入,mTLS,黑白名单。健壮性有待提升的功能有限流和熔断。

  1. 入口流量方式

在Istio体系中的应用不使用Router也可以正常访问微服务。但是PaaS上运行的应用未必都是Istio体系下的,其他非微服务或者非Istio体系下的服务还是要通过Router访问。此外,Istio本身的监控系统和Kiali的界面都是通过Router访问的。

相比Spring Cloud,Istio较好地实现了微服务的路由管理。但在实际生产中,仅有微服务的路由管理是不够的,还需要诸如不同微服务之间的业务系统集成管理、微服务的API管理、微服务中的规则流程管理等。

微服务架构下的服务治理:如何在springcloud框架中实现服务的注册与发现

...发现注册中心在RPC远程过程调用协议中,有一个注册中心SpringCloud支持三种组册中 查看详情

微服务框架之springcloud简介

参考技术A在了解SpringCloud之前先了解一下微服务架构需要考量的核心关键点,如下图:对于以上等核心关键点的处理,不需要我们重复造车轮,SpringCloud已经帮我们集成了,它使用SpringBoot风格将一些比较成熟的微服务框架组合起... 查看详情

istio微服务架构实现服务间grpc通信(代码片段)

...用微服务架构开发时,服务间最普遍的通信场景。在SpringCloud微服务体系中,服务间可以通过Fegin+Ribbon组合的方式,实现服务间负载均衡方式的Http接口调用;但在ServiceMesh架构中,服务发现及负载均衡等治... 查看详情

istio微服务架构实现服务间grpc通信(代码片段)

...用微服务架构开发时,服务间最普遍的通信场景。在SpringCloud微服务体系中,服务间可以通过Fegin+Ribbon组合的方式,实现服务间负载均衡方式的Http接口调用;但在ServiceMesh架构中,服务发现及负载均衡等治... 查看详情

介绍springcloud微服务架构

SpringCloud作为一套微服务治理的框架,几乎考虑到了微服务治理的方方面面,之前也写过一些关于SpringCloud文章,主要偏重各组件的使用,本次分享主要解答这两个问题:SpringCloud在微服务的架构中都做了哪些事情?SpringCloud提供... 查看详情

第一章服务网格的历史

...致的部署、调度、伸缩、监控、日志等功能。    1.1SpringCloud  为功能层面为微服务治理定义一系列标准的特性:智能路由、熔断、服务注册与发现等。  SpringCloud的缺点:在代码级别对组件进行控制,微服务治理代码... 查看详情

从天气项目看springcloud微服务治理

Java视频教程详情描述: 《从天气项目看SpringCloud微服务治理》从SpringBoot入手,从0到1快速搭建具备高并发能力、界面友好,业务便于理解的天气预报系统,而后剖析单块架构的利弊,从而引入微服务架构的概念,并从1到0实... 查看详情

微服务之springcloud实战:springcloudeureka服务治理

服务治理  SpringCloudEureka是SpringCloudNetflix微服务套件的一部分,它基于NetflixEureka做了二次封装,主要完成微服务的服务治理功能,SpringCloud通过为Eureka增加了SpringBoot自动化配置,只需要简单的依赖和配置就可完成Eureka整合搭建... 查看详情

springcloud四个注册中心的比较

参考技术Aspringcloud是一个非常优秀的微服务框架,要管理众多的服务,就需要对这些服务进行治理,也就是我们说的服务治理,服务治理的作用就是在传统的rpc远程调用框架中,管理每个服务与每个服务之间的依赖关系,可以实... 查看详情

使用istio治理微服务入门(代码片段)

 近两年微服务架构流行,主流互联网厂商内部都已经微服务化,初创企业虽然技术积淀不行,但也通过各种开源工具拥抱微服务。再加上容器技术赋能,Kubernetes又添了一把火,微服务架构已然成为当前软件架构设计的首选... 查看详情

k8s:渐进式入门服务网格istio(代码片段)

...记博文内容涉及:istio下载安装一个Demo运行什么是istio,服务网格等概念介绍istio架构组成,应用场景等理解不足小伙伴帮忙指正对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。... 查看详情

主流的微服务框架

SpringCloud Dubbo DubboX Istio Thrift Motan Grpc 服务治理:    阿里巴巴开源的Dubbo和当当网在其基础上扩展的DubboX、Netflix的Eureka、Apache的Consul等 分布式配置管理:  & 查看详情

为什么dapr是比springcloud和istio更优雅的微服务框架?

Dapr 是微软主导的云原生开源项目,2019年10月首次发布,到正式发布V1.0版本的不到一年的时间内,githubstar数达到了1.2万(现在已经超过1.7万星),超过同期的kubernetes、istio、knative等,发展势头迅猛... 查看详情

71nacos实现微服务的注册与发现

...使用Rest模板实现RPC调用4,手写Rpc客户端负载均衡算法。SpringCloud与SpringCloudlibaba的区别SpringCloudrpc远程调用整合1,nacos分布式注册中心,分布式配置中心SpringCloudEureka+config组合SpringCloudrpc远程调用整合。1,nacos分布式注册中心,... 查看详情

eureka----springcloud微服务

服务治理SpringCloudEureka 什么是服务治理在传统rpc远程调用中,服务与服务依赖关系,管理比较复杂,所以需要使用服务治理,管理服务与服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册。服... 查看详情

为什么dapr是比springcloud和istio更优雅的微服务框架?(代码片段)

Dapr 是微软主导的云原生开源项目,2019年10月首次发布,到正式发布V1.0版本的不到一年的时间内,githubstar数达到了1.2万(现在已经超过1.7万星),超过同期的kubernetes、istio、knative等,发展势头迅猛... 查看详情

介绍一下springcloud微服务架构的核心特性

SpringCloud作为一套微服务治理的框架,几乎考虑到了微服务治理的方方面面,之前也写过一些关于SpringCloud文章,主要偏重各组件的使用,本次分享主要解答这两个问题:SpringCloud在微服务的架构中都做了哪些事情?SpringCloud提供... 查看详情

为什么dapr是比springcloud和istio更优雅的微服务框架?

作者:徐磊文章首发地址:https://smartide.cn/zh/blog/2022-0601-dapr/Dapr是微软主导的云原生开源项目,2019年10月首次发布,到正式发布V1.0版本的不到一年的时间内,githubstar数达到了1.2万(现在已经超过1.7万星ÿ... 查看详情