本文主要是介绍Istio实战(十一)-Envoy 请求解析(下),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言
Envoy 是一款面向 Service Mesh 的高性能网络代理服务。它与应用程序并行运行,通过以平台无关的方式提供通用功能来抽象网络。当基础架构中的所有服务流量都通过 Envoy 网格时,通过一致的可观测性,很容易地查看问题区域,调整整体性能。
Envoy也是istio的核心组件之一,以 sidecar 的方式与服务运行在一起,对服务的流量进行拦截转发,具有路由,流量控制等等强大特性。本系列文章,我们将不局限于istio,envoy的官方文档,从源码级别切入,分享Envoy启动、流量劫持、http 请求处理流程的进阶应用实例,深度分析Envoy架构。
本篇将是Envoy请求流程源码解析的第三篇,主要分享Envoy的outbound方向下篇,包含:接收请求、发送请求、接收响应、返回响应。注:本文中所讨论的issue和pr基于21年12月。
outbound方向
接收请求
- client开始向socket写入请求数据
- eventloop在触发read event后,
transport_socket_.doRead
中会循环读取加入read_buffer_
,直到返回EAGAIN
void ConnectionImpl::onReadReady() {ENVOY_CONN_LOG(trace, "read ready. dispatch_buffered_data={}", *this, dispatch_bu
这篇关于Istio实战(十一)-Envoy 请求解析(下)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!