Struct polaris_specification::v1::Rule
source · pub struct Rule {Show 26 fields
pub id: Option<String>,
pub service: Option<String>,
pub namespace: Option<String>,
pub subset: HashMap<String, MatchString>,
pub priority: Option<u32>,
pub resource: i32,
pub type: i32,
pub labels: HashMap<String, MatchString>,
pub amounts: Vec<Amount>,
pub action: Option<String>,
pub disable: Option<bool>,
pub report: Option<Report>,
pub ctime: Option<String>,
pub mtime: Option<String>,
pub revision: Option<String>,
pub service_token: Option<String>,
pub adjuster: Option<AmountAdjuster>,
pub regex_combine: Option<bool>,
pub amount_mode: i32,
pub failover: i32,
pub cluster: Option<RateLimitCluster>,
pub method: Option<MatchString>,
pub arguments: Vec<MatchArgument>,
pub name: Option<String>,
pub etime: Option<String>,
pub max_queue_delay: Option<u32>,
}Expand description
单个限流规则信息
Fields§
§id: Option<String>限流规则唯一标识
service: Option<String>限流规则所属服务名
namespace: Option<String>限流规则所属命名空间
subset: HashMap<String, MatchString>可选,SUBSET标识
priority: Option<u32>限流规则优先级,0值最高
resource: i32§type: i32§labels: HashMap<String, MatchString>业务标签集合,通过KV进行匹配,全部匹配才使用该规则
amounts: Vec<Amount>限流阈值 可以有多个粒度的配置(比如同时针对秒级,分钟级,天级),匹配一个则进行限流 全局限流模式下,该值为服务配额总量;单机限流模式下,该值为单个节点能处理的配额量
action: Option<String>限流动作,对应着客户端的插件名字
disable: Option<bool>是否停用该限流规则,默认启用
report: Option<Report>限流上报方式,同时支持按固定周期上报,以及达到配额百分比后上报
ctime: Option<String>限流规则创建时间
mtime: Option<String>限流规则修改时间
revision: Option<String>限流规则revision信息
service_token: Option<String>服务的TOKEN信息,仅用于控制台,discover接口不下发
adjuster: Option<AmountAdjuster>配额调整算法
regex_combine: Option<bool>通配符是否合并计算,默认分开计数
amount_mode: i32§failover: i32§cluster: Option<RateLimitCluster>分布式限流服务集群
method: Option<MatchString>被调接口名
arguments: Vec<MatchArgument>被调的参数过滤条件,满足过滤条件才进入限流规则
name: Option<String>限流规则名
etime: Option<String>限流规则启用时间
max_queue_delay: Option<u32>最大排队时长,单位秒
Implementations§
source§impl Rule
impl Rule
sourcepub fn resource(&self) -> Resource
pub fn resource(&self) -> Resource
Returns the enum value of resource, or the default if the field is set to an invalid enum value.
sourcepub fn set_resource(&mut self, value: Resource)
pub fn set_resource(&mut self, value: Resource)
Sets resource to the provided enum value.
sourcepub fn type(&self) -> Type
pub fn type(&self) -> Type
Returns the enum value of type, or the default if the field is set to an invalid enum value.
sourcepub fn amount_mode(&self) -> AmountMode
pub fn amount_mode(&self) -> AmountMode
Returns the enum value of amount_mode, or the default if the field is set to an invalid enum value.
sourcepub fn set_amount_mode(&mut self, value: AmountMode)
pub fn set_amount_mode(&mut self, value: AmountMode)
Sets amount_mode to the provided enum value.
sourcepub fn failover(&self) -> FailoverType
pub fn failover(&self) -> FailoverType
Returns the enum value of failover, or the default if the field is set to an invalid enum value.
sourcepub fn set_failover(&mut self, value: FailoverType)
pub fn set_failover(&mut self, value: FailoverType)
Sets failover to the provided enum value.
Trait Implementations§
source§impl Message for Rule
impl Message for Rule
source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
source§fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError>where
B: BufMut,
Self: Sized,
fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError>where B: BufMut, Self: Sized,
source§fn encode_to_vec(&self) -> Vec<u8, Global>where
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8, Global>where Self: Sized,
source§fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError>where
B: BufMut,
Self: Sized,
fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError>where B: BufMut, Self: Sized,
source§fn encode_length_delimited_to_vec(&self) -> Vec<u8, Global>where
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8, Global>where Self: Sized,
source§fn decode<B>(buf: B) -> Result<Self, DecodeError>where
B: Buf,
Self: Default,
fn decode<B>(buf: B) -> Result<Self, DecodeError>where B: Buf, Self: Default,
source§fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError>where
B: Buf,
Self: Default,
fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError>where B: Buf, Self: Default,
source§fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError>where
B: Buf,
Self: Sized,
fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError>where B: Buf, Self: Sized,
self. Read moresource§fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError>where
B: Buf,
Self: Sized,
fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError>where B: Buf, Self: Sized,
self.