envoy filter 开发实践系列 1:官网 echo 示例编译测试

本文是Envoy Filter开发实践系列的第一篇,详细介绍了如何编译和测试官网提供的Echo示例。在Ubuntu 18.04环境下,通过bazel构建工具和gcc 7+进行编译,过程中遇到并解决了编译问题。测试流程包括配置文件准备、启动Envoy、使用telnet进行测试,以及日志和代码解读。
摘要由CSDN通过智能技术生成

1. 前言

早就想写一个 envoy filter 开发的文章了,本来在我的 issue 中列了一篇 Venil Noronha 写的文章,想翻译来的,但是感觉那篇文章太简单了,而且没有实际操作过程,让我这种更愿意动手的人来说是一种折磨。

所以想还是自己写一个系列开始,打算是写 4~5 篇文章,具体的大纲如下:

  1. 官网 echo 示例编译测试

  2. 官网 http filter 示例编译测试

  3. envoy filte 源码剖析(基于 echo 和 http filter)

  4. 自定义协议的 filter 开发

  5. (待定)

这是第一篇文章,主要介绍官网 github 上的例子中 echo 这个例子的编译测试过程。这篇文章主要介绍操作过程,具体原理想下次文章再介绍。

2. 编译环境介绍

采用的是官网推荐的 Ubuntu 18.04,也曾想在自己的 mac 上编译,但是在开发机上编译之后放弃了,因为编译后的零时文件 10 多个 G。采用 8 核 16 G 内存的机器,磁盘空间 300G,磁盘空间还是要大一点,负责多编译几个版本之后空间就很吃紧了。

3. 安装 bazel

这部分按照官网的指引安装就可以了。https://github.com/envoyproxy/envoy/blob/master/bazel/README.md.

sudo wget -O /usr/local/bin/bazel https://github.com/bazelbuild/bazelisk/releases/latest/download/bazelisk-linux-amd64
sudo chmod +x /usr/local/bin/bazel

4. 安装编译环境(这里我选择了gcc编译)

sudo apt-get install \
   libtool \
   cmake \
   automake \
   autoconf \
   make \
   ninja-build \
   curl \
   unzip \
   virtualenv

gcc 要求是 7 以上的版本,所以安装后要检查一下。

ubuntu@ubuntu:/data/mesh/envoy-filter-example$ gcc --version
gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free sof
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值