We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
服务治理分为两种模式,有sidecar和无sidecar。 两者都分为控制面和数据面,控制面负责收集并下发xds资源,数据面负责解析资源,根据资源进行服务治理。 有sidecar为代表的是envoy,无sidecar需要框架自己实现。
sidecar
xds
envoy
LDS
Filter Chain
RDS
Route
Cluster
CDS
应用集群
Endpoint
K8s
Service
EDS
Pod
V代表版本号,R代表资源名称,T代表资源类型。 ADS: 通过Stream流实现,全双工的。当配置更新后,控制面可以动态获取并推送配置到数据面,数据面更新路由规则。
ADS
Stream流
推送配置
更新路由规则
用户请求整体流程 RDS资源格式:最终会找到ClusterName
ClusterName
xDS REST and gRPC protocol
主要包括两步: 1、资源(xds)的获取与更新。 2、根据资源进行服务治理(将请求发送到对应的provider)。
AdsObserver: 观察者,服务端响应后负责调用对应的资源Protocol解析。 XdsRouter.doRoute() -> PilotExchanger -> xxxProtocol -> AdsObserver XdsChannel(建立连接) -> Bootstrap(从文件中获取启动信息)
资源Protocol
pod
VirtualService
destination.subset
weight
subset
DestinationRule
grpc-xds
dubbo-xds
envoy server
Java
Go
The text was updated successfully, but these errors were encountered:
good job
Sorry, something went wrong.
No branches or pull requests
概述
服务治理分为两种模式,有
sidecar
和无sidecar
。两者都分为控制面和数据面,控制面负责收集并下发
xds
资源,数据面负责解析资源,根据资源进行服务治理。有
sidecar
为代表的是envoy
,无sidecar
需要框架自己实现。Envoy
资源类型
LDS
: 服务或程序的监听器,当监听到请求时,通过Filter Chain
对请求进行处理。RDS
:Route
规则规定请求如何路由到哪个Cluster
。CDS
: 可以理解应用集群
,对应提供相同服务的一个或多个Endpoint
, 类似K8s
中Service
概念,一个CDS
包含一组EDS
。EDS
: 具体的应用实例,类似于K8s
中的一个Pod
。通信过程
V代表版本号,R代表资源名称,T代表资源类型。
ADS
: 通过Stream流
实现,全双工的。当配置更新后,控制面可以动态获取并推送配置
到数据面,数据面更新路由规则
。资源使用
用户请求整体流程
RDS
资源格式:最终会找到ClusterName
参考链接
xDS REST and gRPC protocol
实现
原理
主要包括两步:
1、资源(
xds
)的获取与更新。2、根据资源进行服务治理(将请求发送到对应的provider)。
Dubbo实现
AdsObserver: 观察者,服务端响应后负责调用对应的
资源Protocol
解析。XdsRouter.doRoute() -> PilotExchanger -> xxxProtocol -> AdsObserver
XdsChannel(建立连接) -> Bootstrap(从文件中获取启动信息)
gRPC实现
功能
流量管理
pod
打上不同的标签部署在同一个Service
中;VirtualService
中定义通过destination.subset
和weight
指定该subset
下pod
分配的流量比例;DestinationRule
负责划分pod
中的标签划分subset
)可观测性
安全
其他链接
grpc-xds
实现proposal:https://github.com/grpc/proposal/tree/mastergrpc-xds
概述:https://istio.io/v1.15/blog/2021/proxyless-grpc/dubbo-xds
实现源码:https://github.com/apache/dubbo-spi-extensions/tree/master/dubbo-xdsenvoy server
端Java
实现:https://github.com/envoyproxy/java-control-planeenvoy server
端Go
实现:https://github.com/grpc/grpc-go/blob/master/test/xds/xds_server_integration_test.goThe text was updated successfully, but these errors were encountered: