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."""