pub struct Rule {Show 31 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>,
pub concurrency_amount: Option<ConcurrencyAmount>,
pub custom_response: Option<CustomResponse>,
pub metadata: HashMap<String, String>,
pub editable: bool,
pub deleteable: bool,
}
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>
限流动作,和 resource 配合决定插件名称
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>
最大排队时长,单位秒
concurrency_amount: Option<ConcurrencyAmount>
amount for concurrency rate-limit
custom_response: Option<CustomResponse>
fallback configuration
metadata: HashMap<String, String>
限流规则标签数据
editable: bool
操作标志位
deleteable: bool
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>
fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError>
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError>
fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError>
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode<B>(buf: B) -> Result<Self, DecodeError>
fn decode<B>(buf: B) -> Result<Self, DecodeError>
Source§fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError>
fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError>
Source§fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError>
fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError>
self
. Read moreSource§fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError>
fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError>
self
.impl StructuralPartialEq for Rule
Auto Trait Implementations§
impl Freeze for Rule
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request