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 …

    更多

  • 如何为 Envoy 构建一个控制面来管理集群网络流量

    2020年5月10日 in 博客

    前言 这篇文章我看了之后非常想翻译,为什么呢?一方面我也在学习 Envoy,并且在公司的实际项目中使用 Envoy,另一方面,我确实也在设计一个控制管理端来统一管控多个集群的所有流量,没错我说的是所有的流量管控。目前这个管理系统在内部已经在逐步使用起来了。所以翻译这篇文章,即学习 Envoy 技术,也是想做一个参考,印证我的想法是不是 OK 的,取长补短。 指导在服务边缘构建控制面来管理 Envoy Proxy,让它作为服务网关或者在服务网格中使用 Envoy 已经成为了一个非常流行的网络组件 …

    更多