Skip to content
Permalink
Browse files
Update D3.1-thinsdk-sidecar-mesh.md
  • Loading branch information
chickenlj committed May 20, 2022
1 parent e6b21a0 commit 1b05eb5981f541db22823be5616c04ede70b6757
Showing 1 changed file with 5 additions and 8 deletions.
@@ -43,14 +43,14 @@

### ThinSDK 改造方案
#### 应用启动
Dubbo应用进程与Sidecar生命周期对齐,正常启动后,让Sidecar感知到该Endpoint是健康的。
1. Dubbo应用进程与Sidecar生命周期对齐,正常启动后,让Sidecar感知到该Endpoint是健康的。
* 初步方案:Dubbo应用与Sidecar建连,并且发送POST /healthcheck/ok。**这里具体是往哪个端口和地址发送请求?**
* 运行态:通过健康检查来保活

Dubbo应用优雅下线时,需要能够让Sidecar感知到该Endpoint下线了。(应用所在的Container原地热升级、应用优雅下线等场景)
2. Dubbo应用优雅下线时,需要能够让Sidecar感知到该Endpoint下线了。(应用所在的Container原地热升级、应用优雅下线等场景)
* 初步方案:发送POST /healthcheck/fail

在启动过程中,除了生命周期对齐以外,其他主要需要做缩减的动作,对mesh主流程影响不大。
3. 在启动过程中,除了生命周期对齐以外,其他主要需要做缩减的动作,对mesh主流程影响不大。

#### 健康检查
运行态,通过envoy的健康检查来保证Dubbo应用是否正常。目前Triple协议基于gRPC的Health接口实现健康检查。需要支持Envoy的HTTP健康检查Filter:
@@ -67,18 +67,15 @@ istio中所支持的注册中心中成熟度最高的是Kubernetes,第一阶
#### 服务发现
服务发现需要解决的问题是如何触发数据面的服务发现。目前Pilot的操作是在集群第一次启动时从Kubernetes中发现全量的Service、Workload数据,并将这些服务发现数据通过xDS下发给Envoy(Pilot-Agent)实例,后续则以增量的方式推送。

在服务发现阶段,Dubbo应用仅仅与Envoy进行建连,并没有发起任何订阅的行为。


> 应用如何配置?指定哪个协议的注册中心扩展
> 框架如何改造?框架内的行为与流程是怎样的
#### 服务调用
解决Dubbo SDK的请求如何代理给sidecar?
1. 解决Dubbo SDK的请求如何代理给sidecar?
* sdk的RPC请求转换为类似如下格式的请求动作:http://demo.default.svc.cluster.local:50051。其中,demo为当前接口对应的 app-name
* 避免dubbo之前的 Cluster 选址等问题

第二阶段工作(路由等流量治理接入)
2. 第二阶段工作(路由等流量治理接入)

负载均衡策略的对接:交由Sidecar来做:
* envoy支持的负载均衡策略:https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_balancing/load_balancers

0 comments on commit 1b05eb5

Please sign in to comment.