Spring Cloud

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等功能。这是一套有效的微服务治理体系。

kubernetes与Spring Cloud

那么在云原生时代,以kubernetes为基座的IT基础架构上,spring cloud这种微服务治理体系是否合适呢?我们先来看一张图,这是k8s与spring cloud体系的功能对比图。
image.png
我们可以看出,spring cloud有的功能,k8s都已经实现,并且与编程语言无关。

其次,spring cloud和代码耦合太紧密了。微服务的治理能力应当由平台来提供,而不是让应用开发者自行解决。把这种治理能力下沉到平台层面可以有效提升资源利用率和业务的稳定性,避免重复造轮子和运行套娃。

k8s中的lstio是非侵入式的,在不改变代码本身的条件下实现了微服务治理。并且k8s体系的更新速度远远高于spring cloud,未来会更有优势。

lstio

lstio是服务网格的代表性项目,它时k8s层面的微服务体系的落地实践,它实现了服务之间的流量控制和监控,让k8s的服务治理能力更加强大。

原理: 将envoy容器通过sidecar方式注入到业务pod中,劫持整个pod的流量(pod内部的容器和外界的通信必须通过envoy容器来转发),lstio服务端通过发送指令给envoy容器来控制pod的流量
image.png
学习lstio时,把握如下核心流程顺序即可,其余配置参数可以查询文档:

1.注入(inject)---把envoy容器注入业务pod内部(可手动也可自动)
2.部署应用(deploy)---部署lstio应用
3.创建目标规则(destinationRule)--- 流量接收组
4.创建路由(virtualService)--- 流量控制规则


千里之行
1 声望2 粉丝

SRE体系践行者