gpt4 book ai didi

kubernetes - k8s/istio-在Envoy不支持的情况下,服务之间HTTP缓存的替代方法是什么?

转载 作者:行者123 更新时间:2023-12-02 12:29:42 25 4
gpt4 key购买 nike

我正在寻找Kubernetes中服务之间可缓存数据的快速HTTP响应。

由于我的应用程序已经是容器原生的,因此我不想通过缓存库在应用程序中编写缓存逻辑。这些应用程序主要专注于业务逻辑。

我已经搜索了如何配置服务之间的缓存,但没有找到任何Istio配置来做到这一点,这只是Envoy存储库Support HTTP caching和这些正在进行的相关PR中的一个问题:#7198#9878,还有talk和此design spec

在问题页面的第一个评论中,有人提到他们正在使用Nginx作为代理来缓存一些API调用。但我不知道这是否是正确的选择。

有没有更简单的替代方法可以在网格中实现HTTP缓存?

最佳答案

最近,我们开发了一种使用istio&golang缓存服务到服务通信的解决方案。
该解决方案称为“反向代理Sidecar缓存”。
基本上,您在Pod中部署了另一个容器(即缓存容器)。然后,您可以通过istio的VirtualServices配置到您的Pod的路由规则。您在VirtualService中指定的请求首先进入缓存容器,它检查缓存存储并返回响应(如果存在数据),否则将请求代理到应用程序容器。
总体设计如下:
enter image description here
例如,这是一个istio VirtualService yaml,它将所有获取请求路由到缓存容器(在9191端口上运行):

apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: foo
spec:
gateways:
- foo-gateway
hosts:
- foo
http:
- match:
- method:
exact: GET
route:
- destination:
host: foo
port:
number: 9191
- route:
- destination:
host: foo
port:
number: 8080
在这里您可以找到我们撰写的有关此文章: https://medium.com/trendyol-tech/trendyol-platform-team-caching-service-to-service-communications-on-kubernetes-istio-82327589b935
这是项目存储库: https://github.com/Trendyol/sidecache

关于kubernetes - k8s/istio-在Envoy不支持的情况下,服务之间HTTP缓存的替代方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59997985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com