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

source

pub fn resource(&self) -> Resource

Returns the enum value of resource, or the default if the field is set to an invalid enum value.

source

pub fn set_resource(&mut self, value: Resource)

Sets resource to the provided enum value.

source

pub fn type(&self) -> Type

Returns the enum value of type, or the default if the field is set to an invalid enum value.

source

pub fn set_type(&mut self, value: Type)

Sets type to the provided enum value.

source

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.

source

pub fn set_amount_mode(&mut self, value: AmountMode)

Sets amount_mode to the provided enum value.

source

pub fn failover(&self) -> FailoverType

Returns the enum value of failover, or the default if the field is set to an invalid enum value.

source

pub fn set_failover(&mut self, value: FailoverType)

Sets failover to the provided enum value.

Trait Implementations§

source§

impl Clone for Rule

source§

fn clone(&self) -> Rule

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Rule

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Rule

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl Message for Rule

source§

fn encoded_len(&self) -> usize

Returns the encoded length of the message without a length delimiter.
source§

fn clear(&mut self)

Clears the message, resetting all fields to their default.
source§

fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError>where B: BufMut, Self: Sized,

Encodes the message to a buffer. Read more
source§

fn encode_to_vec(&self) -> Vec<u8, Global>where Self: Sized,

Encodes the message to a newly allocated buffer.
source§

fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError>where B: BufMut, Self: Sized,

Encodes the message with a length-delimiter to a buffer. Read more
source§

fn encode_length_delimited_to_vec(&self) -> Vec<u8, Global>where Self: Sized,

Encodes the message with a length-delimiter to a newly allocated buffer.
source§

fn decode<B>(buf: B) -> Result<Self, DecodeError>where B: Buf, Self: Default,

Decodes an instance of the message from a buffer. Read more
source§

fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError>where B: Buf, Self: Default,

Decodes a length-delimited instance of the message from the buffer.
source§

fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError>where B: Buf, Self: Sized,

Decodes an instance of the message from a buffer, and merges it into self. Read more
source§

fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError>where B: Buf, Self: Sized,

Decodes a length-delimited instance of the message from buffer, and merges it into self.
source§

impl PartialEq<Rule> for Rule

source§

fn eq(&self, other: &Rule) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl StructuralPartialEq for Rule

Auto Trait Implementations§

§

impl RefUnwindSafe for Rule

§

impl Send for Rule

§

impl Sync for Rule

§

impl Unpin for Rule

§

impl UnwindSafe for Rule

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.