Flex Gateway新着情報
Governance新着情報
Monitoring API Manager| キャッシングを使用するポリシープロジェクトの例は、 「データキャッシングポリシーの例」を参照してください。 |
Envoy は、ポリシーの要求処理能力を高めるために多くのワーカーを生成します。1 つのワーカーが、発信接続や応答フローなど、特定の要求のすべてのフェーズを処理します。これにより、特定の要求の内部ステータスを追跡したり、基盤となるイベント駆動型の実装には関係なく、逐次的な実行フローを作成したりできます。
各ワーカーは与えられた時間内に 1 つの要求を処理します。特定のワーカーでグローバルな状態を共有するには、同時変更のリスクがない RefCell を使用します。
用意されているキャッシュメカニズムを使用して、すべてのワーカーで共有されるグローバル状態を作成します。
キャッシュビルダーを挿入したら、キャッシュの ID とキャッシュがサポートする要素の最大数を指定します。
次の例では、10 個の要素を保持できるキャッシュを設定しています。
#[entrypoint]
async fn configure(
launcher: Launcher,
cache_builder: CacheBuilder,
) -> Result<()> {
let cache = cache_builder.new(String::from("caching")).max_entries(10);
...
キャッシュは以下のインターフェースを持ちます。
pub trait Cache {
fn save(&self, key: &str, value: Vec<u8>) -> Result<(), CacheError>;
fn get(&self, key: &str) -> Option<Vec<u8>>;
fn delete(&self, key: &str) -> Option<Vec<u8>>;
fn purge(&self);
}
| 異なるワーカーが同時にキャッシュに書き込むため、キャッシュを保存するときに上書きされる値が、取得したときと同じであるという保証はありません。 |