From 44a6f04a45337513ea185e2df4e9fcfd91327875 Mon Sep 17 00:00:00 2001 From: zhongwencool Date: Thu, 30 Sep 2021 15:05:23 +0800 Subject: [PATCH] chore: reorganize shards position --- apps/emqx/include/emqx.hrl | 28 ++--------------- apps/emqx/src/emqx_app.erl | 3 +- apps/emqx_machine/include/emqx_machine.hrl | 30 +++++++++++++++++++ apps/emqx_machine/src/emqx_cluster_rpc.erl | 2 +- .../src/emqx_cluster_rpc_handler.erl | 2 +- apps/emqx_machine/src/emqx_machine.erl | 3 +- apps/emqx_rule_engine/include/rule_engine.hrl | 2 ++ .../src/emqx_rule_engine_app.erl | 3 ++ .../src/emqx_rule_registry.erl | 2 -- 9 files changed, 44 insertions(+), 31 deletions(-) create mode 100644 apps/emqx_machine/include/emqx_machine.hrl diff --git a/apps/emqx/include/emqx.hrl b/apps/emqx/include/emqx.hrl index 0f66bc37f..29350a34a 100644 --- a/apps/emqx/include/emqx.hrl +++ b/apps/emqx/include/emqx.hrl @@ -17,25 +17,8 @@ -ifndef(EMQ_X_HRL). -define(EMQ_X_HRL, true). -%%-------------------------------------------------------------------- -%% Common -%%-------------------------------------------------------------------- +-include_lib("emqx_machine/include/emqx_machine.hrl"). --define(Otherwise, true). - --define(COMMON_SHARD, emqx_common_shard). --define(SHARED_SUB_SHARD, emqx_shared_sub_shard). --define(MOD_DELAYED_SHARD, emqx_delayed_shard). --define(CM_SHARD, emqx_cm_shard). - --define(EMQX_SHARDS, [ ?ROUTE_SHARD - , ?COMMON_SHARD - , ?SHARED_SUB_SHARD - , ?RULE_ENGINE_SHARD - , ?MOD_DELAYED_SHARD - ]). - -%%-------------------------------------------------------------------- %% Banner %%-------------------------------------------------------------------- @@ -90,11 +73,6 @@ %% Route %%-------------------------------------------------------------------- --define(ROUTE_SHARD, route_shard). - - --define(RULE_ENGINE_SHARD, emqx_rule_engine_shard). - -record(route, { topic :: binary(), dest :: node() | {binary(), node()} @@ -140,8 +118,6 @@ until :: integer() }). --endif. - %%-------------------------------------------------------------------- %% Authentication %%-------------------------------------------------------------------- @@ -157,3 +133,5 @@ { name :: atom() , authenticators :: [#authenticator{}] }). + +-endif. diff --git a/apps/emqx/src/emqx_app.erl b/apps/emqx/src/emqx_app.erl index c04c60b58..d5ea0d24a 100644 --- a/apps/emqx/src/emqx_app.erl +++ b/apps/emqx/src/emqx_app.erl @@ -29,6 +29,7 @@ ]). -include("emqx.hrl"). +-include_lib("emqx_machine/include/emqx_machine.hrl"). -include("emqx_release.hrl"). -include("logger.hrl"). @@ -84,7 +85,7 @@ maybe_load_config() -> %% we already start ekka in emqx_machine start_ekka() -> ekka:start(), - ok = ekka_rlog:wait_for_shards(?EMQX_SHARDS, infinity). + ok = ekka_rlog:wait_for_shards(?BOOT_SHARDS, infinity). maybe_start_listeners() -> case emqx_boot:is_enabled(listeners) of diff --git a/apps/emqx_machine/include/emqx_machine.hrl b/apps/emqx_machine/include/emqx_machine.hrl new file mode 100644 index 000000000..4f270c67a --- /dev/null +++ b/apps/emqx_machine/include/emqx_machine.hrl @@ -0,0 +1,30 @@ +%%-------------------------------------------------------------------- +%% Copyright (c) 2017-2021 EMQ Technologies Co., Ltd. All Rights Reserved. +%% +%% Licensed under the Apache License, Version 2.0 (the "License"); +%% you may not use this file except in compliance with the License. +%% You may obtain a copy of the License at +%% +%% http://www.apache.org/licenses/LICENSE-2.0 +%% +%% Unless required by applicable law or agreed to in writing, software +%% distributed under the License is distributed on an "AS IS" BASIS, +%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +%% See the License for the specific language governing permissions and +%% limitations under the License. +%%-------------------------------------------------------------------- + +-ifndef(EMQ_MACHINE_X_HRL). +-define(EMQ_MACHINE_X_HRL, true). + +-define(COMMON_SHARD, emqx_common_shard). +-define(SHARED_SUB_SHARD, emqx_shared_sub_shard). +-define(CM_SHARD, emqx_cm_shard). +-define(ROUTE_SHARD, route_shard). + +-define(BOOT_SHARDS, [ ?ROUTE_SHARD + , ?COMMON_SHARD + , ?SHARED_SUB_SHARD + ]). + +-endif. diff --git a/apps/emqx_machine/src/emqx_cluster_rpc.erl b/apps/emqx_machine/src/emqx_cluster_rpc.erl index d4a7bfee8..b32812f5b 100644 --- a/apps/emqx_machine/src/emqx_cluster_rpc.erl +++ b/apps/emqx_machine/src/emqx_cluster_rpc.erl @@ -32,7 +32,7 @@ -boot_mnesia({mnesia, [boot]}). -copy_mnesia({mnesia, [copy]}). --include_lib("emqx/include/emqx.hrl"). +-include("emqx_machine.hrl"). -include_lib("emqx/include/logger.hrl"). -include("emqx_cluster_rpc.hrl"). diff --git a/apps/emqx_machine/src/emqx_cluster_rpc_handler.erl b/apps/emqx_machine/src/emqx_cluster_rpc_handler.erl index 803b7f9fc..e5b692272 100644 --- a/apps/emqx_machine/src/emqx_cluster_rpc_handler.erl +++ b/apps/emqx_machine/src/emqx_cluster_rpc_handler.erl @@ -17,9 +17,9 @@ -behaviour(gen_server). --include_lib("emqx/include/emqx.hrl"). -include_lib("emqx/include/logger.hrl"). -include("emqx_cluster_rpc.hrl"). +-include("emqx_machine.hrl"). -export([start_link/0, start_link/2]). -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, diff --git a/apps/emqx_machine/src/emqx_machine.erl b/apps/emqx_machine/src/emqx_machine.erl index 0ecc0361b..b7969056f 100644 --- a/apps/emqx_machine/src/emqx_machine.erl +++ b/apps/emqx_machine/src/emqx_machine.erl @@ -23,6 +23,7 @@ -include_lib("emqx/include/logger.hrl"). -include_lib("emqx/include/emqx.hrl"). +-include("emqx_machine.hrl"). %% @doc EMQ X boot entrypoint. start() -> @@ -38,7 +39,7 @@ start() -> ok = load_config_files(), %% Load application first for ekka_mnesia scanner ekka:start(), - ok = ekka_rlog:wait_for_shards(?EMQX_SHARDS, infinity), + ok = ekka_rlog:wait_for_shards(?BOOT_SHARDS, infinity), ok. graceful_shutdown() -> diff --git a/apps/emqx_rule_engine/include/rule_engine.hrl b/apps/emqx_rule_engine/include/rule_engine.hrl index 2908051fe..c230aa8c3 100644 --- a/apps/emqx_rule_engine/include/rule_engine.hrl +++ b/apps/emqx_rule_engine/include/rule_engine.hrl @@ -94,3 +94,5 @@ %% Tables -define(RULE_TAB, emqx_rule). + +-define(RULE_ENGINE_SHARD, emqx_rule_engine_shard). diff --git a/apps/emqx_rule_engine/src/emqx_rule_engine_app.erl b/apps/emqx_rule_engine/src/emqx_rule_engine_app.erl index e9b71f89d..e3e959222 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_engine_app.erl +++ b/apps/emqx_rule_engine/src/emqx_rule_engine_app.erl @@ -16,6 +16,8 @@ -module(emqx_rule_engine_app). +-include("rule_engine.hrl"). + -behaviour(application). -export([start/2]). @@ -23,6 +25,7 @@ -export([stop/1]). start(_Type, _Args) -> + ok = ekka_rlog:wait_for_shards([?RULE_ENGINE_SHARD], infinity), ok = emqx_rule_events:reload(), emqx_rule_engine_sup:start_link(). diff --git a/apps/emqx_rule_engine/src/emqx_rule_registry.erl b/apps/emqx_rule_engine/src/emqx_rule_registry.erl index 370a72933..aa2c97c76 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_registry.erl +++ b/apps/emqx_rule_engine/src/emqx_rule_registry.erl @@ -19,7 +19,6 @@ -behaviour(gen_server). -include("rule_engine.hrl"). --include_lib("emqx/include/emqx.hrl"). -include_lib("emqx/include/logger.hrl"). -include_lib("stdlib/include/qlc.hrl"). @@ -81,7 +80,6 @@ mnesia(boot) -> {storage_properties, StoreProps}]); mnesia(copy) -> - %% Copy rule table ok = ekka_mnesia:copy_table(?RULE_TAB, disc_copies). dump() ->