diff --git a/db/init/mysql/schema.sql b/db/init/mysql/schema.sql index 57a9c85dc570..22545efdcad4 100644 --- a/db/init/mysql/schema.sql +++ b/db/init/mysql/schema.sql @@ -61,7 +61,9 @@ CREATE TABLE `api` ( `document_md5` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'document_md5', `date_created` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'create time', `date_updated` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 'update time', - PRIMARY KEY (`id`) USING BTREE + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_context_path` (`context_path`), + INDEX `idx_api_path_http_method_rpc_type` (`api_path`,`http_method`,`rpc_type`) ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; -- ---------------------------- @@ -100,7 +102,9 @@ CREATE TABLE `app_auth` ( `enabled` tinyint(0) NOT NULL COMMENT 'delete or not (0 close, 1 open) ', `date_created` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'create time', `date_updated` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 'update time', - PRIMARY KEY (`id`) USING BTREE + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `uk_app_key` (`app_key`) USING BTREE, + INDEX `idx_phone` (`phone`) ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; -- ---------------------------- @@ -118,7 +122,8 @@ CREATE TABLE `auth_param` ( `app_param` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT 'service module parameters (parameters that need to be passed by the gateway) json type', `date_created` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'create time', `date_updated` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 'update time', - PRIMARY KEY (`id`) USING BTREE + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_auth_id_app_name` (`auth_id`,`app_name`) ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; -- ---------------------------- @@ -137,7 +142,8 @@ CREATE TABLE `auth_path` ( `enabled` tinyint(0) NOT NULL COMMENT 'whether pass 1 is (0 close, 1 open) ', `date_created` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'create time', `date_updated` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 'update time', - PRIMARY KEY (`id`) USING BTREE + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_auth_id_app_name` (`auth_id`,`app_name`) ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; -- ---------------------------- @@ -176,7 +182,9 @@ CREATE TABLE `data_permission` ( `data_type` int(0) NOT NULL COMMENT '0 selector type , 1 rule type', `date_created` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'create time', `date_updated` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 'update time', - PRIMARY KEY (`id`) USING BTREE + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `uk_data_id` (`data_id`,`user_id`,`data_type`) USING BTREE, + INDEX `idx_user_id` (`user_id`) ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'data permission table' ROW_FORMAT = Dynamic; -- ---------------------------- @@ -195,7 +203,9 @@ CREATE TABLE `detail` ( `value_desc` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'field value description', `date_created` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'create time', `date_updated` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 'update time', - PRIMARY KEY (`id`) USING BTREE + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_field_value` (`field_value`), + INDEX `idx_value_desc` (`value_desc`) ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'field value detail table' ROW_FORMAT = Dynamic; -- ---------------------------- @@ -240,7 +250,9 @@ CREATE TABLE `meta_data` ( `date_created` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'create time', `date_updated` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 'update time', `enabled` tinyint(0) NOT NULL DEFAULT 0 COMMENT 'enabled state (0 close, 1 open) ', - PRIMARY KEY (`id`) USING BTREE + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `uk_path` (`path`) USING BTREE, + INDEX `idx_service_name_method_name` (`service_name`,`method_name`) ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; -- ---------------------------- @@ -263,7 +275,8 @@ CREATE TABLE `mock_request_record` ( `body` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT 'the request body', `date_created` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'create time', `date_updated` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 'update time', - PRIMARY KEY (`id`) USING BTREE + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_api_id` (`api_id`) ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; -- ---------------------------- @@ -299,7 +312,9 @@ CREATE TABLE `operation_record_log` ( `operator` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'operator [user or app]]', `operation_time` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'operation time', `operation_type` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'update' COMMENT 'operation type:create/update/delete/register...', - PRIMARY KEY (`id`) USING BTREE + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_operator` (`operator`), + INDEX `idx_operation_time` (`operation_time`) ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'operation record log' ROW_FORMAT = Dynamic; -- ---------------------------- @@ -338,7 +353,9 @@ CREATE TABLE `permission` ( `resource_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'resource primary key id', `date_created` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'create time', `date_updated` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 'update time', - PRIMARY KEY (`id`) USING BTREE + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_object_id` (`object_id`), + INDEX `idx_resource_id` (`resource_id`) ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'permission table' ROW_FORMAT = Dynamic; -- ---------------------------- @@ -771,6 +788,7 @@ INSERT INTO `permission` VALUES ('1572525965658820617', '1346358560427216896', ' INSERT INTO `permission` VALUES ('1572525965658820618', '1346358560427216896', '1676471945124278280', '2023-07-07 23:26:37.388', '2023-07-07 23:26:37.388'); INSERT INTO `permission` VALUES ('1572525965658820608', '1346358560427216896', '1572525965625266176', '2022-09-28 11:50:58', '2022-09-28 11:50:58'); + -- ---------------------------- -- Table structure for plugin -- ---------------------------- @@ -785,7 +803,9 @@ CREATE TABLE `plugin` ( `date_created` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'create time', `date_updated` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 'update time', `plugin_jar` mediumblob DEFAULT NULL COMMENT 'plugin jar', - PRIMARY KEY (`id`) USING BTREE + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `uk_name` (`name`) USING BTREE, + INDEX `idx_sort` (`sort`) ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; -- ---------------------------- @@ -832,6 +852,7 @@ INSERT INTO `plugin` VALUES ('40', 'keyAuth', NULL, 'Authentication', 150, 0, '2 INSERT INTO `plugin` VALUES ('41', 'brpc', '{\"address\":\"127.0.0.1\", \"port\":\"8005\", \"corethreads\":0, \"threads\":2147483647, \"queues\":0, \"threadpool\":\"shared\"}', 'Proxy', 310, 0, '2023-01-10 10:08:01', '2023-01-10 10:08:01',null); INSERT INTO `plugin` VALUES ('42', 'tcp', NULL, 'Proxy', 320, 1, '2023-05-30 18:02:53', '2022-05-30 18:02:53',null); INSERT INTO `plugin` VALUES ('43', 'loggingHuaweiLts', '{\"totalSizeInBytes\":\"104857600\",\"maxBlockMs\":\"0\",\"ioThreadCount\":\"1\",\"batchSizeThresholdInBytes\":\"524288\",\"batchCountThreshold\":\"4096\",\"lingerMs\":\"2000\",\"retries\":\"100\",\"baseRetryBackoffMs\":\"100\",\"maxRetryBackoffMs\":\"100\",\"enableLocalTest\":\"true\",\"setGiveUpExtraLongSingleLog\":\"false\"}', 'Logging', 177, 0, '2023-07-05 14:03:53.686', '2023-07-06 12:42:07.234', NULL); + -- ---------------------------- -- Table structure for plugin_handle -- ---------------------------- @@ -1177,12 +1198,16 @@ CREATE TABLE `resource` ( `sort` int(0) NOT NULL COMMENT 'sort', `icon` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT 'icon', `is_leaf` tinyint(1) NOT NULL COMMENT 'leaf node 0:no 1:yes', - `is_route` int(0) NOT NULL COMMENT 'route 1:yes 0:no', + `is_route` int(0) NOT NULL COMMENT 'route 0:no 1:yes', `perms` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT 'button permission description sys:user:add(add)/sys:user:edit(edit)', `status` int(0) NOT NULL COMMENT 'status 1:enable 0:disable', `date_created` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'create time', `date_updated` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 'update time', - PRIMARY KEY (`id`) USING BTREE + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_parent_id` (`parent_id`), + INDEX `idx_title` (`title`), + INDEX `idx_name` (`name`), + INDEX `idx_resource_type` (`resource_type`) ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'resource table' ROW_FORMAT = Dynamic; -- ---------------------------- @@ -1615,6 +1640,7 @@ INSERT INTO `resource` VALUES ('1676471945124278279', '1676471945048780800', 'SH INSERT INTO `resource` VALUES ('1676471945124278280', '1676471945048780800', 'SHENYU.BUTTON.PLUGIN.SYNCHRONIZE', '', '', '', 2, 0, '', 1, 0, 'plugin:loggingHuaweiLts:modify', 1, '2023-07-05 14:03:53.721', '2023-07-05 14:03:53.721'); INSERT INTO `resource` VALUES ('1572525965625266176', '1346777449787125760', 'SHENYU.BUTTON.SYSTEM.RESOURCE', '', '', '',2, 6, '', 1, 0, 'system:plugin:resource', 1, '2022-09-28 11:50:58', '2022-09-28 11:50:58'); + -- ---------------------------- -- Table structure for role -- ---------------------------- @@ -1625,7 +1651,8 @@ CREATE TABLE `role` ( `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT 'role describe', `date_created` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'create time', `date_updated` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 'update time', - PRIMARY KEY (`id`, `role_name`) USING BTREE + PRIMARY KEY (`id`, `role_name`) USING BTREE, + UNIQUE KEY `uk_role_name` (`role_name`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'role table' ROW_FORMAT = Dynamic; -- ---------------------------- @@ -1650,7 +1677,8 @@ CREATE TABLE `rule` ( `handle` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT 'processing logic (here for different plug-ins, there will be different fields to identify different processes, all data in JSON format is stored)', `date_created` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'create time', `date_updated` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 'update time', - PRIMARY KEY (`id`) USING BTREE + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `uk_selector_id_name` (`selector_id`,`name`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; -- ---------------------------- @@ -1670,7 +1698,8 @@ CREATE TABLE `rule_condition` ( `param_value` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'parameter value', `date_created` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'create time', `date_updated` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 'update time', - PRIMARY KEY (`id`) USING BTREE + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_rule_id` (`rule_id`) ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; -- ---------------------------- @@ -1695,7 +1724,8 @@ CREATE TABLE `selector` ( `match_restful` tinyint(0) NOT NULL COMMENT 'whether to match restful(0 cache, 1 not cache)', `date_created` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'create time', `date_updated` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 'update time', - PRIMARY KEY (`id`) USING BTREE + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `uk_plugin_id_name` (`plugin_id`,`name`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; -- ---------------------------- @@ -1715,7 +1745,8 @@ CREATE TABLE `selector_condition` ( `param_value` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'parameter value', `date_created` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'create time', `date_updated` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 'update time', - PRIMARY KEY (`id`) USING BTREE + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_selector_id` (`selector_id`) ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; -- ---------------------------- @@ -1859,7 +1890,8 @@ CREATE TABLE `user_role` ( `role_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'role primary key', `date_created` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'create time', `date_updated` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 'update time', - PRIMARY KEY (`id`) USING BTREE + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_user_id` (`user_id`) ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'user and role bind table' ROW_FORMAT = Dynamic; -- ---------------------------- @@ -1882,7 +1914,9 @@ CREATE TABLE `tag` `ext` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'extension info', `date_created` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'create time', `date_updated` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP (3) COMMENT 'update time', - PRIMARY KEY (`id`) USING BTREE + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_parent_tag_id` (`parent_tag_id`), + INDEX `idx_name` (`name`) ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'api doc tag table' ROW_FORMAT = Dynamic; @@ -1894,14 +1928,15 @@ CREATE TABLE `discovery` ( `id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'primary key id', `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'the discovery name', - `level` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '0 selector,1 plugin 2 global', + `level` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '0 selector, 1 plugin, 2 global', `plugin_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT 'the plugin name', `type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'local,zookeeper,etcd,consul,nacos', `server_list` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT 'register server url (,)', `props` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT 'the discovery pops (json) ', `date_created` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'create time', `date_updated` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 'update time', - PRIMARY KEY (`id`) USING BTREE + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_plugin_name_level` (`plugin_name`,`level`) ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; -- ---------------------------- @@ -1917,7 +1952,8 @@ CREATE TABLE `discovery_handler` `props` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT 'the discovery pops (json) ', `date_created` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'create time', `date_updated` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 'update time', - PRIMARY KEY (`id`) USING BTREE + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_discovery_id` (`discovery_id`) ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; -- ---------------------------- @@ -1935,7 +1971,8 @@ CREATE TABLE `discovery_upstream` `props` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT 'the other field (json)', `date_created` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'create time', `date_updated` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 'update time', - PRIMARY KEY (`id`) USING BTREE + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_discovery_handler_id_url` (`discovery_handler_id`,`url`) ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; -- ---------------------------- @@ -1952,7 +1989,8 @@ CREATE TABLE `proxy_selector` `props` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT 'the other field (json)', `date_created` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'create time', `date_updated` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 'update time', - PRIMARY KEY (`id`) USING BTREE + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_name` (`name`) ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; -- ---------------------------- @@ -1968,7 +2006,10 @@ CREATE TABLE `discovery_rel` `proxy_selector_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT 'the proxy selector id', `date_created` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'create time', `date_updated` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 'update time', - PRIMARY KEY (`id`) USING BTREE + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_discovery_handler_id` (`discovery_handler_id`), + INDEX `idx_selector_id` (`selector_id`), + INDEX `idx_proxy_selector_id` (`proxy_selector_id`) ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; -- ---------------------------- @@ -1982,7 +2023,9 @@ CREATE TABLE `tag_relation` `tag_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'parent tag id', `date_created` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'create time', `date_updated` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 'update time', - PRIMARY KEY (`id`) USING BTREE + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_api_id` (`api_id`), + INDEX `idx_tag_id` (`tag_id`) ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/controller/PluginController.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/controller/PluginController.java index f768ba4b3db6..fa953432fd4b 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/controller/PluginController.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/controller/PluginController.java @@ -59,9 +59,15 @@ @RestController @RequestMapping("/plugin") public class PluginController implements PagedController { - + + /** + * 插件服务 + */ private final PluginService pluginService; - + + /** + * 同步数据服务 + */ private final SyncDataService syncDataService; public PluginController(final PluginService pluginService, final SyncDataService syncDataService) { @@ -208,6 +214,7 @@ public ShenyuAdminResult syncPluginAll() { /** * Sync plugin data. + * 同步插件数据 * * @param id the id * @return the mono @@ -216,7 +223,8 @@ public ShenyuAdminResult syncPluginAll() { public ShenyuAdminResult syncPluginData(@PathVariable("id") @Existed(message = "plugin is not existed", provider = PluginMapper.class) final String id) { - return ShenyuAdminResult.success(syncDataService.syncPluginData(id) ? ShenyuResultMessage.SYNC_SUCCESS : ShenyuResultMessage.SYNC_FAIL); + boolean syncResult = syncDataService.syncPluginData(id); + return ShenyuAdminResult.success(syncResult ? ShenyuResultMessage.SYNC_SUCCESS : ShenyuResultMessage.SYNC_FAIL); } /** diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/controller/SelectorController.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/controller/SelectorController.java index b5ea707bd9d3..8e9b37c9f704 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/controller/SelectorController.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/controller/SelectorController.java @@ -77,7 +77,7 @@ public AdminResult> querySelectors(final String pluginId @RequestParam @NotNull final Integer pageSize) { final SelectorQueryCondition condition = new SelectorQueryCondition(); condition.setUserId(SessionUtil.visitor().getUserId()); - condition.setPlugin(ListUtil.of(pluginId)); + condition.setPluginIds(ListUtil.of(pluginId)); condition.setKeyword(name); return searchAdaptor(new PageCondition<>(currentPage, pageSize, condition)); } diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/AbstractPathDataChangedListener.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/AbstractPathDataChangedListener.java index 2530a0f735aa..52f762982f3e 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/AbstractPathDataChangedListener.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/AbstractPathDataChangedListener.java @@ -36,13 +36,20 @@ /** * AbstractPathDataChangedListener. + * 路径数据变更的监听器的抽象框架实现 */ public abstract class AbstractPathDataChangedListener implements DataChangedListener { private static final Logger LOG = LoggerFactory.getLogger(AbstractPathDataChangedListener.class); + /** + * 规则同步对象锁 + */ private final Object ruleSyncObject = new Object(); + /** + * 选择器同步对象锁 + */ private final Object selectorSyncObject = new Object(); @Override @@ -116,28 +123,37 @@ public void onDiscoveryUpstreamChanged(final List changed, fi @Override public void onSelectorChanged(final List changed, final DataEventTypeEnum eventType) { + // 选择器数据的刷新事件 if (eventType == DataEventTypeEnum.REFRESH && !changed.isEmpty()) { + // 构建选择器的父路径("/shenyu/selector/${pluginName}") String selectorParentPath = DefaultPathConstants.buildSelectorParentPath(changed.get(0).getPluginName()); + // 递归地删除节点路径 deletePathRecursive(selectorParentPath); } + // 变更的选择器数据遍历 for (SelectorData data : changed) { + // 选择器的真实路径("/shenyu/selector/${pluginName}/${selectorId}") String selectorRealPath = DefaultPathConstants.buildSelectorRealPath(data.getPluginName(), data.getId()); + // delete if (eventType == DataEventTypeEnum.DELETE) { deleteNode(selectorRealPath); LOG.debug("[DataChangedListener] delete appKey {}", selectorRealPath); continue; } - //create or update + // create or update synchronized (selectorSyncObject) { createOrUpdate(selectorRealPath, data); } + // 操作日志 LOG.debug("[DataChangedListener] change path {} with data {}", selectorRealPath, data); } } @Override public void onPluginChanged(final List changed, final DataEventTypeEnum eventType) { + // 变更的插件数据遍历 for (PluginData data : changed) { + // 构建插件路径("/shenyu/plugin/${pluginName}") String pluginPath = DefaultPathConstants.buildPluginPath(data.getName()); // delete if (eventType == DataEventTypeEnum.DELETE) { @@ -149,28 +165,36 @@ public void onPluginChanged(final List changed, final DataEventTypeE LOG.debug("[DataChangedListener] delete pluginPath {}", pluginPath); continue; } - //create or update + // create or update createOrUpdate(pluginPath, data); + // 操作日志 LOG.debug("[DataChangedListener] change path {} with data {}", pluginPath, data); } } @Override public void onRuleChanged(final List changed, final DataEventTypeEnum eventType) { + // 规则数据的刷新事件 if (eventType == DataEventTypeEnum.REFRESH && !changed.isEmpty()) { - String selectorParentPath = DefaultPathConstants.buildRuleParentPath(changed.get(0).getPluginName()); - deletePathRecursive(selectorParentPath); + // 构建规则的父路径("/shenyu/rule/${pluginName}") + String ruleParentPath = DefaultPathConstants.buildRuleParentPath(changed.get(0).getPluginName()); + // 递归地删除节点路径 + deletePathRecursive(ruleParentPath); } + // 变更的规则数据遍历 for (RuleData data : changed) { + // 规则的真实路径("/shenyu/rule/${pluginName}/${selectorId-ruleId}") String ruleRealPath = DefaultPathConstants.buildRulePath(data.getPluginName(), data.getSelectorId(), data.getId()); + // delete if (eventType == DataEventTypeEnum.DELETE) { deleteNode(ruleRealPath); continue; } - //create or update + // create or update synchronized (ruleSyncObject) { createOrUpdate(ruleRealPath, data); } + // 操作日志 LOG.debug("[DataChangedListener] change path {} with data {}", ruleRealPath, data); } } diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/DataChangedEvent.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/DataChangedEvent.java index 728668992cce..33b715c2ca5a 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/DataChangedEvent.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/DataChangedEvent.java @@ -27,6 +27,7 @@ /** * Data change event. + * 数据变更事件 * * @see DataChangedEventDispatcher * @since 2.0.0 @@ -35,8 +36,14 @@ public class DataChangedEvent extends ApplicationEvent { private static final long serialVersionUID = 8397163004365988739L; + /** + * 数据事件类型 + */ private final DataEventTypeEnum eventType; + /** + * 配置分组 + */ private final ConfigGroupEnum groupKey; /** diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/DataChangedEventDispatcher.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/DataChangedEventDispatcher.java index 0d27560cfd2d..ebc3f502a432 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/DataChangedEventDispatcher.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/DataChangedEventDispatcher.java @@ -37,12 +37,19 @@ /** * Event forwarders, which forward the changed events to each ConfigEventListener. + * 数据变更事件的分发器 */ @Component public class DataChangedEventDispatcher implements ApplicationListener, InitializingBean { + /** + * 应用上下文 + */ private final ApplicationContext applicationContext; + /** + * 数据变更事件的监听器列表 + */ private List listeners; public DataChangedEventDispatcher(final ApplicationContext applicationContext) { @@ -52,22 +59,28 @@ public DataChangedEventDispatcher(final ApplicationContext applicationContext) { @Override @SuppressWarnings("unchecked") public void onApplicationEvent(final DataChangedEvent event) { + // 数据变更事件的监听器 for (DataChangedListener listener : listeners) { switch (event.getGroupKey()) { case APP_AUTH: + // 应用认证数据 listener.onAppAuthChanged((List) event.getSource(), event.getEventType()); break; case PLUGIN: + // 插件数据变更 listener.onPluginChanged((List) event.getSource(), event.getEventType()); break; case RULE: + // 规则数据变更 listener.onRuleChanged((List) event.getSource(), event.getEventType()); break; case SELECTOR: + // 选择器数据变更 listener.onSelectorChanged((List) event.getSource(), event.getEventType()); applicationContext.getBean(LoadServiceDocEntry.class).loadDocOnSelectorChanged((List) event.getSource(), event.getEventType()); break; case META_DATA: + // 元数据变更 listener.onMetaDataChanged((List) event.getSource(), event.getEventType()); break; case PROXY_SELECTOR: @@ -84,6 +97,7 @@ public void onApplicationEvent(final DataChangedEvent event) { @Override public void afterPropertiesSet() { + // 数据变更事件的监听器列表 Collection listenerBeans = applicationContext.getBeansOfType(DataChangedListener.class).values(); this.listeners = Collections.unmodifiableList(new ArrayList<>(listenerBeans)); } diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/DataChangedListener.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/DataChangedListener.java index c394425de704..b17088ae4f07 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/DataChangedListener.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/DataChangedListener.java @@ -31,11 +31,13 @@ /** * Event listener, used to send notification of event changes, * used to support HTTP, websocket, zookeeper and other event notifications. + * 数据变更事件的监听器 */ public interface DataChangedListener { /** * invoke this method when AppAuth was received. + * 应用认证数据变更 * * @param changed the changed * @param eventType the event type @@ -45,6 +47,7 @@ default void onAppAuthChanged(List changed, DataEventTypeEnum event /** * invoke this method when Plugin was received. + * 插件数据变更 * * @param changed the changed * @param eventType the event type @@ -54,6 +57,7 @@ default void onPluginChanged(List changed, DataEventTypeEnum eventTy /** * invoke this method when Selector was received. + * 选择器数据变更 * * @param changed the changed * @param eventType the event type @@ -63,6 +67,7 @@ default void onSelectorChanged(List changed, DataEventTypeEnum eve /** * On meta data changed. + * 元数据变更 * * @param changed the changed * @param eventType the event type @@ -73,6 +78,7 @@ default void onMetaDataChanged(List changed, DataEventTypeEnum eventTy /** * invoke this method when Rule was received. + * 规则数据变更 * * @param changed the changed * @param eventType the event type diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/RecordLogDataChangedAdapterListener.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/RecordLogDataChangedAdapterListener.java index 5c41967952b1..e08717a4bb86 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/RecordLogDataChangedAdapterListener.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/RecordLogDataChangedAdapterListener.java @@ -25,10 +25,14 @@ /** * RecordLogDataChangedAdapterListener. + * 操作记录日志数据变更的适配监听器 */ @Component public class RecordLogDataChangedAdapterListener implements DataChangedListener, ApplicationListener { - + + /** + * 操作日志记录的数据访问对象 + */ private final OperationRecordLogMapper logMapper; public RecordLogDataChangedAdapterListener(final OperationRecordLogMapper logMapper) { diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/etcd/EtcdClient.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/etcd/EtcdClient.java index dbeb358a7450..c6392019345e 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/etcd/EtcdClient.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/etcd/EtcdClient.java @@ -75,7 +75,9 @@ public Boolean exists(final String key) { */ public void put(final String key, final String value) { try { - client.getKVClient().put(ByteSequence.from(key, StandardCharsets.UTF_8), ByteSequence.from(value, StandardCharsets.UTF_8)).get(); + client.getKVClient() + .put(ByteSequence.from(key, StandardCharsets.UTF_8), ByteSequence.from(value, StandardCharsets.UTF_8)) + .get(); } catch (Exception e) { LOG.error("update value of node error.", e); throw new ShenyuException(e.getMessage()); @@ -87,7 +89,8 @@ public void put(final String key, final String value) { * @param key node name */ public void delete(final String key) { - client.getKVClient().delete(ByteSequence.from(key, StandardCharsets.UTF_8)); + client.getKVClient() + .delete(ByteSequence.from(key, StandardCharsets.UTF_8)); } /** diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/etcd/EtcdDataDataChangedListener.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/etcd/EtcdDataDataChangedListener.java index 99baa10581e1..a8a4d7286619 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/etcd/EtcdDataDataChangedListener.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/etcd/EtcdDataDataChangedListener.java @@ -22,9 +22,13 @@ /** * EtcdDataDataChangedListener. + * 使用etcd注册中心发布数据变更 */ public class EtcdDataDataChangedListener extends AbstractPathDataChangedListener { + /** + * etcd客户端 + */ private final EtcdClient etcdClient; public EtcdDataDataChangedListener(final EtcdClient client) { diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/nacos/NacosDataChangedListener.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/nacos/NacosDataChangedListener.java index 6a6bf152c89d..6e1748338a65 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/nacos/NacosDataChangedListener.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/nacos/NacosDataChangedListener.java @@ -29,11 +29,15 @@ /** * Use nacos to push data changes. + * 使用nacos注册中心发布数据变更 */ public class NacosDataChangedListener extends AbstractNodeDataChangedListener { private static final Logger LOG = LoggerFactory.getLogger(NacosDataChangedListener.class); + /** + * 配置服务 + */ private final ConfigService configService; public NacosDataChangedListener(final ConfigService configService) { diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/zookeeper/ZookeeperDataChangedListener.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/zookeeper/ZookeeperDataChangedListener.java index 47778089463f..78fa930843a1 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/zookeeper/ZookeeperDataChangedListener.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/zookeeper/ZookeeperDataChangedListener.java @@ -23,9 +23,13 @@ /** * Use zookeeper to push data changes. + * 使用ZooKeeper注册中心发布数据变更 */ public class ZookeeperDataChangedListener extends AbstractPathDataChangedListener { + /** + * ZooKeeper客户端 + */ private final ZookeeperClient zkClient; public ZookeeperDataChangedListener(final ZookeeperClient zkClient) { @@ -34,12 +38,14 @@ public ZookeeperDataChangedListener(final ZookeeperClient zkClient) { @Override public void createOrUpdate(final String path, final Object data) { + // 创建持久化路径节点 zkClient.createOrUpdate(path, data, CreateMode.PERSISTENT); } @Override public void deleteNode(final String path) { if (zkClient.isExist(path)) { + // 删除路径节点 zkClient.delete(path); } } @@ -47,6 +53,7 @@ public void deleteNode(final String path) { @Override public void deletePathRecursive(final String path) { if (zkClient.isExist(path)) { + // 删除路径节点 zkClient.delete(path); } } diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/DiscoveryHandlerMapper.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/DiscoveryHandlerMapper.java index 3b7dd39de8e9..c14b17b14742 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/DiscoveryHandlerMapper.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/DiscoveryHandlerMapper.java @@ -94,7 +94,9 @@ public interface DiscoveryHandlerMapper extends ExistProvider { * @param proxySelectorId proxySelectorId * @return DiscoveryHandlerDO */ - DiscoveryHandlerDO selectByProxySelectorId(@Param("proxySelectorId") String proxySelectorId); + DiscoveryHandlerDO selectByProxySelectorId( + @Param("proxySelectorId") String proxySelectorId + ); /** * DiscoveryHandlerDOList. @@ -109,6 +111,8 @@ public interface DiscoveryHandlerMapper extends ExistProvider { * @param discoveryId discoveryId * @return DiscoveryHandlerDO list */ - List selectByDiscoveryId(@Param("discoveryId")String discoveryId); + List selectByDiscoveryId( + @Param("discoveryId")String discoveryId + ); } diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/DiscoveryMapper.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/DiscoveryMapper.java index 55eed5e86625..6a919a7f520c 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/DiscoveryMapper.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/DiscoveryMapper.java @@ -62,7 +62,10 @@ public interface DiscoveryMapper extends ExistProvider { * @param level level * @return {@linkplain DiscoveryDO} */ - DiscoveryDO selectByPluginNameAndLevel(@Param("pluginName") String pluginName, @Param("level") String level); + DiscoveryDO selectByPluginNameAndLevel( + @Param("pluginName") String pluginName, + @Param("level") String level + ); /** * insert discovery. diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/DiscoveryRelMapper.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/DiscoveryRelMapper.java index 7c2ccc92811d..ae5783584f32 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/DiscoveryRelMapper.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/DiscoveryRelMapper.java @@ -41,7 +41,9 @@ public interface DiscoveryRelMapper { * @param proxySelectorId proxy selector id. * @return {@linkplain DiscoveryRelDO} */ - DiscoveryRelDO selectByProxySelectorId(String proxySelectorId); + DiscoveryRelDO selectByProxySelectorId( + @Param("proxySelectorId") String proxySelectorId + ); /** * insert discoveryRelDO. @@ -89,7 +91,9 @@ public interface DiscoveryRelMapper { * @param discoveryHandlerId discoveryHandlerId * @return DiscoveryRelDO */ - DiscoveryRelDO selectByDiscoveryHandlerId(@Param("discoveryHandlerId") String discoveryHandlerId); + DiscoveryRelDO selectByDiscoveryHandlerId( + @Param("discoveryHandlerId") String discoveryHandlerId + ); /** * deleteByDiscoveryHandlerId. @@ -97,5 +101,8 @@ public interface DiscoveryRelMapper { * @param discoveryHandlerId discoveryHandlerId * @return rows */ - int deleteByDiscoveryHandlerId(@Param("discoveryHandlerId") String discoveryHandlerId); + int deleteByDiscoveryHandlerId( + @Param("discoveryHandlerId") String discoveryHandlerId + ); + } diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/DiscoveryUpstreamMapper.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/DiscoveryUpstreamMapper.java index eef7a708c6b9..7da9db4d45a6 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/DiscoveryUpstreamMapper.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/DiscoveryUpstreamMapper.java @@ -52,7 +52,9 @@ public interface DiscoveryUpstreamMapper extends ExistProvider { * @param proxySelectorId proxySelectorId * @return DiscoveryUpstreamDO list */ - List selectByProxySelectorId(@Param("proxySelectorId") String proxySelectorId); + List selectByProxySelectorId( + @Param("proxySelectorId") String proxySelectorId + ); /** * selectByDiscoveryHandlerId. @@ -60,7 +62,9 @@ public interface DiscoveryUpstreamMapper extends ExistProvider { * @param discoveryHandlerId discovery handler id * @return discoveryUpstreamDO list */ - List selectByDiscoveryHandlerId(@Param("discoveryHandlerId") String discoveryHandlerId); + List selectByDiscoveryHandlerId( + @Param("discoveryHandlerId") String discoveryHandlerId + ); /** * insert. @@ -108,7 +112,9 @@ public interface DiscoveryUpstreamMapper extends ExistProvider { * @param discoveryHandlerId discovery handler id * @return result */ - int deleteByDiscoveryHandlerId(@Param("discoveryHandlerId") String discoveryHandlerId); + int deleteByDiscoveryHandlerId( + @Param("discoveryHandlerId") String discoveryHandlerId + ); /** * deleteByUrl. @@ -117,7 +123,10 @@ public interface DiscoveryUpstreamMapper extends ExistProvider { * @param url url * @return rows int */ - int deleteByUrl(@Param("discoveryHandlerId") String discoveryHandlerId, @Param("url") String url); + int deleteByUrl( + @Param("discoveryHandlerId") String discoveryHandlerId, + @Param("url") String url + ); /** * selectByDiscoveryHandlerIdAndUrl. @@ -126,7 +135,10 @@ public interface DiscoveryUpstreamMapper extends ExistProvider { * @param url url * @return DiscoveryUpstreamDO */ - DiscoveryUpstreamDO selectByDiscoveryHandlerIdAndUrl(@Param("discoveryHandlerId") String discoveryHandlerId, @Param("url") String url); + DiscoveryUpstreamDO selectByDiscoveryHandlerIdAndUrl( + @Param("discoveryHandlerId") String discoveryHandlerId, + @Param("url") String url + ); /** * updateDiscoveryHandlerIdAndUrl. @@ -135,4 +147,5 @@ public interface DiscoveryUpstreamMapper extends ExistProvider { * @return rows */ int updateDiscoveryHandlerIdAndUrl(DiscoveryUpstreamDO discoveryUpstreamDO); + } diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/PluginMapper.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/PluginMapper.java index a91e37e28f7e..4930c835b17c 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/PluginMapper.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/PluginMapper.java @@ -195,7 +195,7 @@ public interface PluginMapper extends ExistProvider { * @param userId user Id * @return plugin list */ - List activePluginSnapshot(@Param("userId")String userId); + List activePluginSnapshot(@Param("userId") String userId); /** * search by condition. diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/ProxySelectorMapper.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/ProxySelectorMapper.java index 71e30cae8226..fe8a873acd25 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/ProxySelectorMapper.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/ProxySelectorMapper.java @@ -101,7 +101,9 @@ public interface ProxySelectorMapper extends ExistProvider { * @param discoveryHandlerId discoveryHandlerId. * @return ProxySelectorDO */ - ProxySelectorDO selectByHandlerId(@Param("discoveryHandlerId") String discoveryHandlerId); + ProxySelectorDO selectByHandlerId( + @Param("discoveryHandlerId") String discoveryHandlerId + ); /** @@ -110,7 +112,9 @@ public interface ProxySelectorMapper extends ExistProvider { * @param discoveryId discoveryId * @return proxySelectorDOList */ - List selectByDiscoveryId(@Param("discoveryId") String discoveryId); + List selectByDiscoveryId( + @Param("discoveryId") String discoveryId + ); /** * selectAll. diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/RuleConditionMapper.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/RuleConditionMapper.java index 089525ae1be1..be495bda403d 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/RuleConditionMapper.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/RuleConditionMapper.java @@ -59,7 +59,10 @@ public interface RuleConditionMapper { */ default List selectByRuleIdSet(@Param("ruleIdSet") Set ruleIdSet) { final List> ruleIdSetPartition = Lists.partition(new ArrayList<>(ruleIdSet), 500); - return ruleIdSetPartition.stream().map(this::selectByRuleIdSet0).flatMap(Collection::stream).collect(Collectors.toList()); + return ruleIdSetPartition.stream() + .map(this::selectByRuleIdSet0) + .flatMap(Collection::stream) + .collect(Collectors.toList()); } /** @@ -125,4 +128,5 @@ default List selectByRuleIdSet(@Param("ruleIdSet") Set * @return rows */ int deleteByQuery(RuleConditionQuery ruleConditionQuery); + } diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/RuleMapper.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/RuleMapper.java index c6322561e5ab..2cd388fa0658 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/RuleMapper.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/RuleMapper.java @@ -90,7 +90,10 @@ public interface RuleMapper extends ExistProvider { * @param name the name * @return the rule do */ - RuleDO findBySelectorIdAndName(@Param("selectorId") String selectorId, @Param("name") String name); + RuleDO findBySelectorIdAndName( + @Param("selectorId") String selectorId, + @Param("name") String name + ); /** * count rule by query. diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/SelectorMapper.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/SelectorMapper.java index 6f58a529132f..b1b80919cd05 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/SelectorMapper.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/SelectorMapper.java @@ -85,7 +85,7 @@ public interface SelectorMapper extends ExistProvider { List findByPluginIds(List pluginIds); /** - * select select by name. + * select by name. * * @param name the name * @return selector do list @@ -99,7 +99,10 @@ public interface SelectorMapper extends ExistProvider { * @param pluginId the plugin id * @return the selector do */ - SelectorDO findByNameAndPluginId(@Param("name") String name, @Param("pluginId") String pluginId); + SelectorDO findByNameAndPluginId( + @Param("name") String name, + @Param("pluginId") String pluginId + ); /** * count selector by query. @@ -178,5 +181,8 @@ public interface SelectorMapper extends ExistProvider { * @param condition condition * @return view data list */ - List selectByCondition(@Param("condition") SelectorQueryCondition condition); + List selectByCondition( + @Param("condition") SelectorQueryCondition condition + ); + } diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/event/AdminDataModelChangedEvent.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/event/AdminDataModelChangedEvent.java index f0286acd2d91..d79ae176053b 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/event/AdminDataModelChangedEvent.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/event/AdminDataModelChangedEvent.java @@ -25,6 +25,7 @@ /** * AdminDataModelChangedEvent. + * 管理员数据模型变更事件 */ public class AdminDataModelChangedEvent extends ApplicationEvent { diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/page/condition/SearchCondition.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/page/condition/SearchCondition.java index 22acac641b4f..a6931f285ec5 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/page/condition/SearchCondition.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/page/condition/SearchCondition.java @@ -19,7 +19,7 @@ /** - * search condition.For general fuzzy search. + * search condition. For general fuzzy search. */ public interface SearchCondition { diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/query/SelectorQueryCondition.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/query/SelectorQueryCondition.java index 5999314a2757..b9d5ef237d34 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/query/SelectorQueryCondition.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/query/SelectorQueryCondition.java @@ -25,7 +25,7 @@ import java.util.List; /** - * this is rule query condition. + * this is selector query condition. */ public class SelectorQueryCondition extends BaseExcludedSearchCondition implements SearchCondition, SwitchCondition { @@ -40,9 +40,9 @@ public class SelectorQueryCondition extends BaseExcludedSearchCondition implemen private Boolean switchStatus; /** - * selector from plugin. + * selector from plugin id. */ - private List plugin; + private List pluginIds; /** * user id. @@ -113,16 +113,16 @@ public void setKeyword(final String keyword) { * * @return plugin ids */ - public List getPlugin() { - return plugin; + public List getPluginIds() { + return pluginIds; } /** * set plugin. * - * @param plugin plugin ids + * @param pluginIds plugin ids */ - public void setPlugin(final List plugin) { - this.plugin = plugin; + public void setPluginIds(final List pluginIds) { + this.pluginIds = pluginIds; } } diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/SyncDataService.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/SyncDataService.java index 17637f317e56..b26812cd8de5 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/SyncDataService.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/SyncDataService.java @@ -21,6 +21,7 @@ /** * The interface Sync data service. + * 同步数据服务 */ public interface SyncDataService { @@ -34,6 +35,7 @@ public interface SyncDataService { /** * Sync plugin data boolean. + * 同步插件数据 * * @param pluginId the plugin id * @return the boolean diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/SyncDataServiceImpl.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/SyncDataServiceImpl.java index 30a485e5001d..f243ded240f0 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/SyncDataServiceImpl.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/SyncDataServiceImpl.java @@ -50,19 +50,25 @@ public class SyncDataServiceImpl implements SyncDataService { /** * The Plugin service. + * 插件服务 */ private final PluginService pluginService; /** * The Selector service. + * 选择器服务 */ private final SelectorService selectorService; /** * The Rule service. + * 规则服务 */ private final RuleService ruleService; + /** + * 事件发布者 + */ private final ApplicationEventPublisher eventPublisher; private final MetaDataService metaDataService; @@ -105,19 +111,26 @@ public boolean syncAll(final DataEventTypeEnum type) { @Override public boolean syncPluginData(final String pluginId) { + // 通过插件ID查找插件视图数据 PluginVO pluginVO = pluginService.findById(pluginId); + // 发布插件数据更新事件 eventPublisher.publishEvent(new DataChangedEvent(ConfigGroupEnum.PLUGIN, DataEventTypeEnum.UPDATE, Collections.singletonList(PluginTransfer.INSTANCE.mapDataTOVO(pluginVO)))); + // 通过插件ID查找选择器数据列表 List selectorDataList = selectorService.findByPluginId(pluginId); if (!CollectionUtils.isEmpty(selectorDataList)) { + // 发布选择器数据列表的刷新事件 eventPublisher.publishEvent(new DataChangedEvent(ConfigGroupEnum.SELECTOR, DataEventTypeEnum.REFRESH, selectorDataList)); + // 选择器ID列表 List selectorIdList = selectorDataList.stream().map(SelectorData::getId) .collect(Collectors.toList()); + // 获取所有规则数据列表 List allRuleDataList = ruleService.findBySelectorIdList(selectorIdList); + // 发布规则数据列表的刷新事件 eventPublisher.publishEvent(new DataChangedEvent(ConfigGroupEnum.RULE, DataEventTypeEnum.REFRESH, allRuleDataList)); } return true; diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/validation/ExistProvider.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/validation/ExistProvider.java index 56489457ed12..b7c55f419c6c 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/validation/ExistProvider.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/validation/ExistProvider.java @@ -23,9 +23,7 @@ * ExistProvider. */ public interface ExistProvider { - - - + /** * existed. * diff --git a/shenyu-admin/src/main/resources/mappers/data-permission-sqlmap.xml b/shenyu-admin/src/main/resources/mappers/data-permission-sqlmap.xml index e2fd69ffc400..7430dade7f07 100644 --- a/shenyu-admin/src/main/resources/mappers/data-permission-sqlmap.xml +++ b/shenyu-admin/src/main/resources/mappers/data-permission-sqlmap.xml @@ -92,12 +92,12 @@ select - from discovery_rel where discovery_handler_id = #{discoveryHandlerId} + FROM discovery_rel + WHERE discovery_handler_id = #{discoveryHandlerId} diff --git a/shenyu-admin/src/main/resources/mappers/discovery-sqlmap.xml b/shenyu-admin/src/main/resources/mappers/discovery-sqlmap.xml index a35b9743404d..4adf61073f18 100644 --- a/shenyu-admin/src/main/resources/mappers/discovery-sqlmap.xml +++ b/shenyu-admin/src/main/resources/mappers/discovery-sqlmap.xml @@ -59,7 +59,8 @@ SELECT FROM discovery - WHERE plugin_name = #{pluginName, jdbcType=VARCHAR} AND level = #{level, jdbcType=VARCHAR} + WHERE plugin_name = #{pluginName, jdbcType=VARCHAR} + AND level = #{level, jdbcType=VARCHAR} @@ -159,8 +160,10 @@ @@ -201,6 +204,8 @@ - DELETE FROM discovery_upstream WHERE discovery_handler_id = #{discoveryHandlerId} and url = #{url} + DELETE FROM discovery_upstream + WHERE discovery_handler_id = #{discoveryHandlerId} + AND url = #{url} diff --git a/shenyu-admin/src/main/resources/mappers/proxy-selector-sqlmap.xml b/shenyu-admin/src/main/resources/mappers/proxy-selector-sqlmap.xml index d27f1b7008c0..cac23fb914d2 100644 --- a/shenyu-admin/src/main/resources/mappers/proxy-selector-sqlmap.xml +++ b/shenyu-admin/src/main/resources/mappers/proxy-selector-sqlmap.xml @@ -119,7 +119,7 @@