RSS

Posts in 2020

  • Envoy源码分析之ThreadLocal机制

    2020年8月23日 in 源码分析系列

    ThreadLocal机制 ​ Envoy中的ThreadLocal机制其实就是我们经常说的线程本地存储简称TLS(Thread Local Storage),顾名思义通过TLS定义的变量会在每一个线程专有的存储区域存储一份,访问TLS的时候,其实访问的是当前线程占有存储区域中的副本,因此可以使得线程可以无锁的并发访问同一个变量。Linux上一般有三种方式来定义一个TLS变量。 gcc对C语言的扩展__thread pthread库提供的pthread_key_create C++11 …

    更多

  • Envoy源码分析之Dispatcher机制

    2020年8月23日 in 源码分析系列

    Dispatcher机制 ​ Envoy和Nginx一样都是基于事件驱动的架构,这种架构的核心就是事件循环(EventLoop)。业界目前典型的几种事件循环实现主要有Libevent、Libev、Libuv、Boost.Asio等,也可以完全基于Linux系统调用epoll来实现。Envoy选择在Libevent的基础上进行了封装,实现了自己的事件循环机制,在Envoy中被称为Dispatcher,一个Dispatcher对象就是一个事件分发器,就如同它的名字一样。Dispatcher …

    更多