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.