澄潭
澄潭
mac intel 芯片的问题还没有时间跟进。应该是 v8 引擎导致的。
linux arm/x86,mac arm 都是没有问题的
@cr7258 可以用SetSharedData同步一下,要注意用cas机制避免冲突,同时也可以基于SetSharedData机制进行选主,让一个worker做健康检查恢复,不过要注意SharedData中的数据是VM级别的,即使插件配置更新也不会清理。
> @johnlanni 我修改了代码,使用 SetSharedData 在多个 VM 之间同步 apiToken 的信息,并且也使用 SetSharedData 进行选主了。 > > > 不过要注意SharedData中的数据是VM级别的,即使插件配置更新也不会清理。 > > 这个地方提到的注意点,我需要做那些处理? 大的问题没有,上面提到一些跟机制相关的细节处理,辛苦再调整下
@hanxiantao 帮忙解答下
我是倾向于这里的设计: https://www.envoyproxy.io/docs/envoy/latest/api-v3/type/v3/ratelimit_strategy.proto.html#envoy-v3-api-msg-type-v3-ratelimitstrategy-requestspertimeunit 虽然他想的很好,还是跟requests_per_time_unit并列搞了个token_bucket🐶 但我觉得把token_bucket的参数默认化,也没问题的,比如100qps,就是max bucket 100,每秒填充100token
可以考虑下这种配置方式: ``` token_per_minute:1000 strategy: type: token_bucket interval_factor: 0.5 fill_factor: 0.5 capacity_factor: 1 ``` 这个配置等价: ``` capacity: 1000 tokens_per_fill: 500 fill_interval: 30s ``` strategy的默认值是: ``` strategy: type: fixed_window ``` 因为固定窗口能满足 90%...
Yes, I think this is very important. This article introduces this scenario: https://medium.com/@anonrongbo/understanding-the-importance-of-vary-origin-to-prevent-cache-confusion-and-cors-errors-ef3b63046b00 For example, gateways such as Spring Cloud Gateway and Zuul also implement this mechanism.
多模型的fallback,目前在插件里实现的话,会导致fallback之后无法流式(因为只能通过send local response返回一个完整响应了)。 目前其实已经支持了多模型的fallback,不过是通过 envoy custom-response filter实现的。 在ai 代理插件内的实现,可以不用考虑多模型的fallback;不过可以考虑下apiTokens的failover机制,例如某个api token在一段时间内失败超过一定次数就直接屏蔽掉(比如可能这个api token的配额用完了),然后可以搞个定时器,对被屏蔽的timer进行定时测试(用一个固定的开销不大的问题),当测试通过时又把这个token给加回来。
> > 然后可以搞个定时器,对被屏蔽的timer进行定时测试(用一个固定的开销不大的问题),当测试通过时又把这个token给加回来。 > > timer 貌似在 Wasm 里用不了,如果我使用当前的命令编译 Wasm 文件。 > > ```shell > tinygo build -o main.wasm -scheduler=none -target=wasi -gc=custom -tags="custommalloc nottinygc_finalizer proxy_wasm_version_0_2_100" ./ > ``` > >...