diff --git a/apps/emqx/src/emqx_rpc.erl b/apps/emqx/src/emqx_rpc.erl
index 5cc8ca4df..19e450457 100644
--- a/apps/emqx/src/emqx_rpc.erl
+++ b/apps/emqx/src/emqx_rpc.erl
@@ -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) ->
diff --git a/apps/emqx_conf/src/emqx_conf_schema.erl b/apps/emqx_conf/src/emqx_conf_schema.erl
index 4419873d6..df906911e 100644
--- a/apps/emqx_conf/src/emqx_conf_schema.erl
+++ b/apps/emqx_conf/src/emqx_conf_schema.erl
@@ -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),
diff --git a/changes/feat-13434.en.md b/changes/feat-13434.en.md
new file mode 100644
index 000000000..3d2c15f7b
--- /dev/null
+++ b/changes/feat-13434.en.md
@@ -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.
diff --git a/rel/i18n/emqx_conf_schema.hocon b/rel/i18n/emqx_conf_schema.hocon
index cb593779e..2e4439857 100644
--- a/rel/i18n/emqx_conf_schema.hocon
+++ b/rel/i18n/emqx_conf_schema.hocon
@@ -132,10 +132,11 @@ node_name.label:
"""Node Name"""
rpc_port_discovery.desc:
-"""manual
: discover ports by tcp_server_port
.
+"""manual
: discover ports by server_port
.
stateless
: discover ports in a stateless manner, using the following algorithm.
If node name is emqxN@127.0.0.1
, 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 rlog
."""
db_role.label:
"""DB Role"""
-rpc_tcp_server_port.desc:
+rpc_server_port.desc:
"""Listening port used by RPC local service.
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.
-Note that this config only takes effect when rpc.port_discovery is set to manual
-and driver
is set to ssl
."""
-
-rpc_ssl_server_port.label:
-"""RPC SSL Server Port"""
-
desc_cluster.desc:
"""EMQX nodes can form a cluster to scale up the total capacity.
Here holds the configs to instruct how individual nodes can discover each other."""