From ee137734960499c30c053a313f04a1a8db143d0c Mon Sep 17 00:00:00 2001 From: zmstone Date: Thu, 4 Jul 2024 21:34:35 +0200 Subject: [PATCH 1/3] refactor: rename rpc.tcp_client_num to rpc.client_num tcp_client_num is kept as an alias --- apps/emqx/src/emqx_rpc.erl | 2 +- apps/emqx_conf/src/emqx_conf_schema.erl | 5 +++-- rel/i18n/emqx_conf_schema.hocon | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) 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..f38a9099e 100644 --- a/apps/emqx_conf/src/emqx_conf_schema.erl +++ b/apps/emqx_conf/src/emqx_conf_schema.erl @@ -774,12 +774,13 @@ fields("rpc") -> 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", diff --git a/rel/i18n/emqx_conf_schema.hocon b/rel/i18n/emqx_conf_schema.hocon index cb593779e..a9a28ce21 100644 --- a/rel/i18n/emqx_conf_schema.hocon +++ b/rel/i18n/emqx_conf_schema.hocon @@ -383,10 +383,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: From 7a23ae7b4dc5c0dc49613eaf525d1a00f8687ceb Mon Sep 17 00:00:00 2001 From: zmstone Date: Mon, 8 Jul 2024 13:13:45 +0200 Subject: [PATCH 2/3] refactor: expose only server_port for rpc previously, there were 4 port configs: - tcp_server_port - ssl_server_port - tcp_client_port - ssl_client_port --- apps/emqx_conf/src/emqx_conf_schema.erl | 36 ++++++++++--------------- rel/i18n/emqx_conf_schema.hocon | 19 +++++-------- 2 files changed, 20 insertions(+), 35 deletions(-) diff --git a/apps/emqx_conf/src/emqx_conf_schema.erl b/apps/emqx_conf/src/emqx_conf_schema.erl index f38a9099e..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,29 +758,20 @@ 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) - } - )}, - {"ssl_server_port", - sc( - integer(), - #{ - mapping => "gen_rpc.ssl_server_port", - default => 5369, - desc => ?DESC(rpc_ssl_server_port) + aliases => [tcp_server_port, ssl_server_port], + default => ?DEFAULT_RPC_PORT, + desc => ?DESC(rpc_server_port) } )}, {"client_num", sc( range(1, 256), #{ - aliases => [tcp_client_num] + aliases => [tcp_client_num], default => 10, desc => ?DESC(rpc_client_num) } @@ -1140,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) -> @@ -1225,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/rel/i18n/emqx_conf_schema.hocon b/rel/i18n/emqx_conf_schema.hocon index a9a28ce21..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.""" @@ -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.""" From 917df38a0751617c8fce6256bee4a300e6fe9904 Mon Sep 17 00:00:00 2001 From: zmstone Date: Tue, 9 Jul 2024 22:22:53 +0200 Subject: [PATCH 3/3] docs: add changelog for PR 13434 --- changes/feat-13434.en.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 changes/feat-13434.en.md 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.