Merge pull request #10800 from lafirest/pref/default_behaviour

fix(limiter): improve the default configuration
This commit is contained in:
lafirest 2023-05-31 10:10:17 +08:00 committed by GitHub
commit 592a87d99f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 8 deletions

View File

@ -110,7 +110,7 @@ roots() ->
]. ].
fields(limiter) -> fields(limiter) ->
short_paths_fields(?MODULE) ++ short_paths_fields(?MODULE, ?IMPORTANCE_HIDDEN) ++
[ [
{Type, {Type,
?HOCON(?R_REF(node_opts), #{ ?HOCON(?R_REF(node_opts), #{
@ -181,7 +181,7 @@ fields(client_opts) ->
boolean(), boolean(),
#{ #{
desc => ?DESC(divisible), desc => ?DESC(divisible),
default => false, default => true,
importance => ?IMPORTANCE_HIDDEN importance => ?IMPORTANCE_HIDDEN
} }
)}, )},
@ -190,7 +190,7 @@ fields(client_opts) ->
emqx_schema:duration(), emqx_schema:duration(),
#{ #{
desc => ?DESC(max_retry_time), desc => ?DESC(max_retry_time),
default => <<"10s">>, default => <<"1h">>,
importance => ?IMPORTANCE_HIDDEN importance => ?IMPORTANCE_HIDDEN
} }
)}, )},
@ -212,9 +212,17 @@ fields(Type) ->
simple_bucket_field(Type). simple_bucket_field(Type).
short_paths_fields(DesModule) -> short_paths_fields(DesModule) ->
short_paths_fields(DesModule, ?DEFAULT_IMPORTANCE).
short_paths_fields(DesModule, Importance) ->
[ [
{Name, {Name,
?HOCON(rate(), #{desc => ?DESC(DesModule, Name), required => false, example => Example})} ?HOCON(rate(), #{
desc => ?DESC(DesModule, Name),
required => false,
importance => Importance,
example => Example
})}
|| {Name, Example} <- || {Name, Example} <-
lists:zip(short_paths(), [<<"1000/s">>, <<"1000/s">>, <<"100MB/s">>]) lists:zip(short_paths(), [<<"1000/s">>, <<"1000/s">>, <<"100MB/s">>])
]. ].
@ -280,8 +288,8 @@ default_client_config() ->
initial => 0, initial => 0,
low_watermark => 0, low_watermark => 0,
burst => 0, burst => 0,
divisible => false, divisible => true,
max_retry_time => timer:seconds(10), max_retry_time => timer:hours(1),
failure_strategy => force failure_strategy => force
}. }.

View File

@ -746,7 +746,7 @@ t_create_esockd_htb_limiter(_) ->
ok. ok.
t_esockd_htb_consume(_) -> t_esockd_htb_consume(_) ->
ClientCfg = emqx_limiter_schema:default_client_config(), ClientCfg = default_client_config(),
Cfg = #{client => #{bytes => ClientCfg#{rate := 50, max_retry_time := 0}}}, Cfg = #{client => #{bytes => ClientCfg#{rate := 50, max_retry_time := 0}}},
Opts = emqx_esockd_htb_limiter:new_create_options(?FUNCTION_NAME, bytes, Cfg), Opts = emqx_esockd_htb_limiter:new_create_options(?FUNCTION_NAME, bytes, Cfg),
Limiter = emqx_esockd_htb_limiter:create(Opts), Limiter = emqx_esockd_htb_limiter:create(Opts),
@ -1067,7 +1067,7 @@ parse_and_check(ConfigString) ->
make_create_test_data_with_infinity_node(FakeInstnace) -> make_create_test_data_with_infinity_node(FakeInstnace) ->
Infinity = emqx_htb_limiter:make_infinity_limiter(), Infinity = emqx_htb_limiter:make_infinity_limiter(),
ClientCfg = emqx_limiter_schema:default_client_config(), ClientCfg = default_client_config(),
InfinityRef = emqx_limiter_bucket_ref:infinity_bucket(), InfinityRef = emqx_limiter_bucket_ref:infinity_bucket(),
MkC = fun(Rate) -> MkC = fun(Rate) ->
#{client => #{bytes => ClientCfg#{rate := Rate}}} #{client => #{bytes => ClientCfg#{rate := Rate}}}
@ -1133,3 +1133,7 @@ parse_schema(ConfigString) ->
RawConf, RawConf,
#{required => false, atom_key => false} #{required => false, atom_key => false}
). ).
default_client_config() ->
Conf = emqx_limiter_schema:default_client_config(),
Conf#{divisible := false, max_retry_time := timer:seconds(10)}.