RSS

Posts in 2020

  • 剖析Envoy Filter的Bazel编译配置

    2020年9月25日 in 新手上路系列

    引言 Envoy是一款使用现代C++语言编写的L4/L7网络代理,采用Bazel进行依赖管理与执行编译过程。本文将以官方一个简单的HTTP Filter作为例子,分析Bazel在filter编译构建过程中所起的作用,为希望快速开始开发与编译filter的开发者提供指引,帮助大家快速了解envoy filter的编译流程。 一、Bazel简介 Bazel是一种类似CMake的用于组织编译过程的一个构建工具,类似Make,Maven和Gradle。其特点是可读性较好,支持跨语言,跨平台编译;并且可以 …

    更多

  • 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 好文翻译系列

    https://blog.christianposta.com/envoy/guidance-for-building-a-control-plane-to-manage-envoy-proxy-based-infrastructure/) 看完本文有收获?请分享给更多人 关注「黑光技术」,关注大数据+微服务

    更多