Envoy 源码分析--event】的更多相关文章

目录 Envoy 源码分析--event libevent Timer SignalEvent FileEvent RealTimeSystem 任务队列 延迟析构 dispacth_thread Envoy 源码分析--event 申明:本文的 Envoy 源码分析基于 Envoy1.10.0. Envoy 的事件是复用了 libevent 的 event_base .其在代码中的表现就是类 Dispatcher,一个 Dispatcher 其实就是一个 event_loop,主要的核心功能有…
目录 Envoy 源码分析--network address Instance DNS cidr socket Option Socket ListenSocket ConnectionSocket TransportSocket listen connection ConnectionImpl ClientConnectionImpl Envoy 源码分析--network 申明:本文的 Envoy 源码分析基于 Envoy1.10.0. Envoy 的服务是通用服务,因此它需要支持 TCP…
目录 Envoy 源码分析--程序启动过程 初始化 main 入口 MainCommon 初始化 服务 InstanceImpl 初始化 启动 main 启动入口 服务启动流程 LDS 服务启动流程 最后 Envoy 源码分析--程序启动过程 申明:本文的 Envoy 源码分析基于 Envoy1.10.0. 前面几章分析了 event事件 和 底层网络, 但对创建服务的过程并没有串起来,只是分析了底层的网络公共库.这次我们分析下整个服务的创建过程. 初始化 main 入口 服务启动的总入口 ma…
Envoy 源码分析--LDS LDS 是 Envoy 用来自动获取 listener 的 API. Envoy 通过 API 可以增加.修改或删除 listener. 先来总结下 listener 的更新语义如下: 每个 listener 必须有一个唯一的名称.如果没有提供名称,Envoy 会生成一个 UUID 来作为它的名字.要动态更新 listener,管理服务必须提供一个唯一名称. 当 listener 被添加,在接收流量之前,会先进入 "预热" 阶段. 一旦 listener…
目录 Envoy 源码分析--network L4 filter manager FilterManagerImpl addWriteFilter addReadFilter addFilter initializeReadFilters onRead onWrite Envoy 源码分析--network L4 filter manager 申明:本文的 Envoy 源码分析基于 Envoy1.10.0. 承接Envoy 源码分析--network,上次 network 只分析到 L4 过滤,…
目录 Envoy 源码分析--buffer BufferFragment RawSlice Slice OwnedSlice SliceDeque UnownedSlice OwnedImpl WatermarkBuffer WatermarkBufferFactory ZeroCopyInputStreamImpl Envoy 源码分析--buffer 申明:本文的 Envoy 源码分析基于 Envoy1.10.0. Envoy 的 buffer 在 1.10.0 前是基于 libevent…
源码注释 // Zepto.js // (c) 2010-2015 Thomas Fuchs // Zepto.js may be freely distributed under the MIT license. ;(function($){ , undefined, slice = Array.prototype.slice, isFunction = $.isFunction, isString = function(obj){ return typeof obj == 'string'…
源码:nginx 1.12.0   一.简介      nginx是一款非常受欢迎的软件,具备高性能.模块化可定制的良好特性.之前写了一篇nginx的http模块分析的文章,主要对http处理模块进行了分析讲解,同时也涉及了nginx模块化的内容.至于nginx高性能的原因,希望能够在在这篇文章中就自己对于这方面的理解给大家分享一下.      nginx的event处理模型包含两个方面:高效的IO处理函数,事件的异步处理(可选的线程池).   二.IO复用函数      nginx中包含epo…
event和event_base是libevent的两个核心结构体,分别是反应堆模式中的Event和Reactor.源码分别位于event.h和event-internal.h中 1.event: struct event { TAILQ_ENTRY (event) ev_next; //I/O事件 TAILQ_ENTRY (event) ev_active_next; //所有激活事件的链表 TAILQ_ENTRY (event) ev_signal_next; //Signal事件 //定时…
接下来就是触发事件了.事件触发后的处理函数的分发主要靠两个函数,一个jQuery.event.dispatch,一个是jQuery.event.handlers.这个dispatch会调用handlers,而handlers会返回一个数组,这个数组是符合本次事件条件的所有处理函数对象.dispatch只管执行.那这个handlers是如何运作的呢.绑定在一个元素上面的非代理事件是肯定要被触发的,所以会全数被返回.主要是代理事件的筛选,jQuery会从触发了事件(target所指的元素)的元素一级…