Merge pull request #13434 from zmstone/0704-refine-rpc-config

0704 refine rpc config
This commit is contained in:
zmstone 2024-07-11 10:25:45 +02:00 committed by GitHub
commit 7664b06e98
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 31 additions and 39 deletions

View File

@ -137,7 +137,7 @@ maybe_badrpc(Delivery) ->
Delivery.
max_client_num() ->
emqx:get_config([rpc, tcp_client_num], ?DefaultClientNum).
emqx:get_config([rpc, client_num], ?DefaultClientNum).
-spec unwrap_erpc(emqx_rpc:erpc(A) | [emqx_rpc:erpc(A)]) -> A | {error, _Err} | list().
unwrap_erpc(Res) when is_list(Res) ->

View File

@ -86,6 +86,8 @@
external_broker_crashed
]).
-define(DEFAULT_RPC_PORT, 5369).
%% Callback to upgrade config after loaded from config file but before validation.
upgrade_raw_conf(Raw0) ->
Raw1 = emqx_connector_schema:transform_bridges_v1_to_connectors_and_bridges_v2(Raw0),
@ -756,30 +758,22 @@ fields("rpc") ->
desc => ?DESC(rpc_port_discovery)
}
)},
{"tcp_server_port",
{"server_port",
sc(
integer(),
pos_integer(),
#{
mapping => "gen_rpc.tcp_server_port",
default => 5369,
desc => ?DESC(rpc_tcp_server_port)
aliases => [tcp_server_port, ssl_server_port],
default => ?DEFAULT_RPC_PORT,
desc => ?DESC(rpc_server_port)
}
)},
{"ssl_server_port",
sc(
integer(),
#{
mapping => "gen_rpc.ssl_server_port",
default => 5369,
desc => ?DESC(rpc_ssl_server_port)
}
)},
{"tcp_client_num",
{"client_num",
sc(
range(1, 256),
#{
aliases => [tcp_client_num],
default => 10,
desc => ?DESC(rpc_tcp_client_num)
desc => ?DESC(rpc_client_num)
}
)},
{"connect_timeout",
@ -1139,8 +1133,10 @@ translation("emqx") ->
translation("gen_rpc") ->
[
{"default_client_driver", fun tr_gen_rpc_default_client_driver/1},
{"tcp_client_port", fun tr_gen_rpc_tcp_client_port/1},
{"ssl_client_port", fun tr_gen_rpc_ssl_client_port/1},
{"tcp_server_port", fun tr_gen_rpc_port/1},
{"ssl_server_port", fun tr_gen_rpc_port/1},
{"tcp_client_port", fun tr_gen_rpc_port/1},
{"ssl_client_port", fun tr_gen_rpc_port/1},
{"ssl_client_options", fun tr_gen_rpc_ssl_options/1},
{"ssl_server_options", fun tr_gen_rpc_ssl_options/1},
{"socket_ip", fun(Conf) ->
@ -1224,11 +1220,8 @@ collector_enabled(disabled, _) -> [].
tr_gen_rpc_default_client_driver(Conf) ->
conf_get("rpc.protocol", Conf).
tr_gen_rpc_tcp_client_port(Conf) ->
conf_get("rpc.tcp_server_port", Conf).
tr_gen_rpc_ssl_client_port(Conf) ->
conf_get("rpc.ssl_server_port", Conf).
tr_gen_rpc_port(Conf) ->
conf_get("rpc.server_port", Conf).
tr_gen_rpc_ssl_options(Conf) ->
Ciphers = conf_get("rpc.ciphers", Conf),

6
changes/feat-13434.en.md Normal file
View File

@ -0,0 +1,6 @@
Simplified `rpc` configs.
- New config `rpc.server_port` is added to replace `rpc.tcp_server_port` and `rpc.ssl_server_port`.
- `rpc.tcp_client_num` is renamed to `rpc.client_num` since this config is for both TCP and SSL.
The old config names are kept as aliases for backward compatibility.

View File

@ -132,10 +132,11 @@ node_name.label:
"""Node Name"""
rpc_port_discovery.desc:
"""<code>manual</code>: discover ports by <code>tcp_server_port</code>.<br/>
"""<code>manual</code>: discover ports by <code>server_port</code>.<br/>
<code>stateless</code>: discover ports in a stateless manner, using the following algorithm.
If node name is <code>emqxN@127.0.0.1</code>, where the N is an integer,
then the listening port will be 5370 + N."""
then the listening port will be 5370 + N.
NOTE: when `port_discovery` is `manual`, `server_port` configuration has no effect."""
rpc_port_discovery.label:
"""RRC Port Discovery"""
@ -358,12 +359,12 @@ to <code>rlog</code>."""
db_role.label:
"""DB Role"""
rpc_tcp_server_port.desc:
rpc_server_port.desc:
"""Listening port used by RPC local service.<br/>
Note that this config only takes effect when rpc.port_discovery is set to manual."""
rpc_tcp_server_port.label:
"""RPC TCP Server Port"""
rpc_server_port.label:
"""RPC Server Port"""
desc_console_handler.desc:
"""Log handler that prints log events to the EMQX console."""
@ -383,10 +384,10 @@ log_burst_limit_max_count.desc:
log_burst_limit_max_count.label:
"""Events Number"""
rpc_tcp_client_num.desc:
rpc_client_num.desc:
"""Set the maximum number of RPC communication channels initiated by this node to each remote node."""
rpc_tcp_client_num.label:
rpc_client_num.label:
"""RPC TCP Client Num"""
cluster_k8s_address_type.desc:
@ -734,14 +735,6 @@ this is where to look."""
desc_rpc.label:
"""RPC"""
rpc_ssl_server_port.desc:
"""Listening port used by RPC local service.<br/>
Note that this config only takes effect when rpc.port_discovery is set to manual
and <code>driver</code> is set to <code>ssl</code>."""
rpc_ssl_server_port.label:
"""RPC SSL Server Port"""
desc_cluster.desc:
"""EMQX nodes can form a cluster to scale up the total capacity.<br/>
Here holds the configs to instruct how individual nodes can discover each other."""