• gRPC桥接
    • Envoy gRPC
    • 构建Go服务
    • Docker Compose
    • 发送请求到Key/Value存储
  • 返回

    gRPC桥接

    Envoy gRPC

    gRPC桥接沙箱是展示Envoy gRPC桥接过滤器的一个例子。其中包含带有Python HTTP客户端的gRPC内存Key/Value存储。Python客户端通过Envoy代理进程发出HTTP/1请求,并将其升级为HTTP/2的gRPC请求。响应随后缓冲,并作为HTTP/1报文负载有效信息发送回客户端。

    本例还演示Envoy另一个功能,就是通过Envoy路由配置,具有基础鉴权的路由能力。

    构建Go服务

    构建&运行Go gRPC服务:

    1. $ pwd
    2. envoy/examples/grpc-bridge
    3. $ script/bootstrap
    4. $ script/build

    注意:构建需要的Envoy代码库(或其工作副本)位于$GOPATH/src/github.com/envoyproxy/envoy中。

    Docker Compose

    运行docker compose文件,并设置Python和gRPC在容器中运行:

    1. $ pwd
    2. envoy/examples/grpc-bridge
    3. $ docker-compose up --build

    发送请求到Key/Value存储

    要使用Python服务并发送gRPC请求:

    1. $ pwd
    2. envoy/examples/grpc-bridge
    3. # set a key
    4. $ docker-compose exec python /client/client.py set foo bar
    5. setf foo to bar
    6. # get a key
    7. $ docker-compose exec python /client/client.py get foo
    8. bar
    9. # modify an existing key
    10. $ docker-compose exec python /client/client.py set foo baz
    11. setf foo to baz
    12. # get the modified key
    13. $ docker-compose exec python /client/client.py get foo
    14. baz

    在正在运行的docker-compose容器中,您应该可以看到gRPC服务打印其运行的记录:

    1. grpc_1 | 2017/05/30 12:05:09 set: foo = bar
    2. grpc_1 | 2017/05/30 12:05:12 get: foo
    3. grpc_1 | 2017/05/30 12:05:18 set: foo = baz

    返回

    • 上一级
    • 首页目录