diff --git a/config/src/main/java/com/alibaba/nacos/config/server/Config.java b/config/src/main/java/com/alibaba/nacos/config/server/Config.java index c7243596bf5..74882c0f438 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/Config.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/Config.java @@ -21,7 +21,7 @@ import org.springframework.scheduling.annotation.EnableScheduling; /** - * Config main + * Config main. * * @author Nacos */ diff --git a/config/src/main/java/com/alibaba/nacos/config/server/aspect/CapacityManagementAspect.java b/config/src/main/java/com/alibaba/nacos/config/server/aspect/CapacityManagementAspect.java index 4076b44a442..c9167ced598 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/aspect/CapacityManagementAspect.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/aspect/CapacityManagementAspect.java @@ -36,7 +36,7 @@ import java.nio.charset.Charset; /** - * 容量管理切面:批量写入、更新暂不处理 + * Capacity management aspect: batch write and update but don't process it. * * @author hexu.hxy * @date 2018/3/13 @@ -61,7 +61,7 @@ public class CapacityManagementAspect { private PersistService persistService; /** - * 更新也需要判断content内容是否超过大小限制 + * Need to judge the size of content whether to exceed the limination. */ @Around(SYNC_UPDATE_CONFIG_ALL) public Object aroundSyncUpdateConfigAll(ProceedingJoinPoint pjp, HttpServletRequest request, @@ -74,12 +74,12 @@ public Object aroundSyncUpdateConfigAll(ProceedingJoinPoint pjp, HttpServletRequ String betaIps = request.getHeader("betaIps"); if (StringUtils.isBlank(betaIps)) { if (StringUtils.isBlank(tag)) { - // 只对写入或更新config_info表的做容量管理的限制检验 + // do capacity management limination check for writting or updating config_info table. if (persistService.findConfigInfo(dataId, group, tenant) == null) { - // 写入操作 + // Write operation. return do4Insert(pjp, request, response, group, tenant, content); } - // 更新操作 + // Update operation. return do4Update(pjp, request, response, dataId, group, tenant, content); } } @@ -87,9 +87,9 @@ public Object aroundSyncUpdateConfigAll(ProceedingJoinPoint pjp, HttpServletRequ } /** - * 更新操作:开启容量管理的限制检验功能,会检验"content的大小"是否超过限制 + * Update operation: open the limination of capacity management and it will check the size of content. * - * @throws Throwable "实际操作"抛出的异常 + * @throws Throwable Throws Exception when actually operate. */ private Object do4Update(ProceedingJoinPoint pjp, HttpServletRequest request, HttpServletResponse response, String dataId, String group, String tenant, String content) throws Throwable { @@ -109,9 +109,11 @@ private Object do4Update(ProceedingJoinPoint pjp, HttpServletRequest request, Ht } /** - * 写入操作:1. 无论是否开启容量管理的限制检验功能都会计数(usage) 2.开启容量管理的限制检验功能,会检验"限额"和"content的大小" + * Write operation. + * Step 1: count whether to open the limination checking funtion for capacity management; + * Step 2: open limination checking capacity management and check size of content and quota; * - * @throws Throwable "实际操作"抛出的异常 + * @throws Throwable Expcetion. */ private Object do4Insert(ProceedingJoinPoint pjp, HttpServletRequest request, HttpServletResponse response, String group, String tenant, String content) throws Throwable { @@ -119,13 +121,13 @@ private Object do4Insert(ProceedingJoinPoint pjp, HttpServletRequest request, Ht CounterMode counterMode = CounterMode.INCREMENT; boolean hasTenant = hasTenant(tenant); if (PropertyUtil.isCapacityLimitCheck()) { - // 先写入或更新:usage + 1 + // Write or update: usage + 1 LimitType limitType = getLimitType(counterMode, group, tenant, content, hasTenant); if (limitType != null) { return response4Limit(request, response, limitType); } } else { - // 先写入或更新:usage + 1 + // Write or update: usage + 1 insertOrUpdateUsage(group, tenant, counterMode, hasTenant); } return getResult(pjp, response, group, tenant, counterMode, hasTenant); @@ -141,7 +143,7 @@ private boolean hasTenant(String tenant) { } /** - * 无论是否开启容量管理的限制检验功能,删除时候,计数模块中容量信息表中的usage都得减一 + * The usage of capacity table for counting module will subtracte one whether open the limination check of capacity management. */ @Around(DELETE_CONFIG) public Object aroundDeleteConfig(ProceedingJoinPoint pjp, HttpServletRequest request, HttpServletResponse response, @@ -158,22 +160,31 @@ public Object aroundDeleteConfig(ProceedingJoinPoint pjp, HttpServletRequest req } /** - * @throws Throwable "实际操作"抛出的异常 + * Delete Operation. + * + * @throws Throwable Expcetion. */ private Object do4Delete(ProceedingJoinPoint pjp, HttpServletResponse response, String group, String tenant, ConfigInfo configInfo) throws Throwable { boolean hasTenant = hasTenant(tenant); if (configInfo == null) { - // "configInfo == null"有2种可能: - // 1. 并发删除;2. 先是新增子配置,后来删除了所有子配置,这时合并写入到configInfo的task(异步)还没执行 - // 关于第2点,那么接下会顺序执行"合并写入config_info的task","删除config_info的task" - // 主动修正usage,当刚好在上述的"合并写入config_info的task"执行完时修正usage,此时usage=1 - // 而后面个"删除config_info的task"执行时并不会把usage-1,因为请求已经返回了。 - // 因此还是需要定时修正usage的Job + // "configInfo == null", has two possible points. + // 1. Concurrently deletion. + // 2. First, new sub configurations are added, and then all sub configurations are deleted. + // At this time, the task (asynchronous) written to configinfo has not been executed. + // + // About 2 point, then it will execute to merge to write config_info's task orderly, and delete config_info's task. + // Active modification of usage, when it happens to be in the above "merging to write config_info's task". + // Modify usage when the task of info is finished, and usage = 1. + // The following "delete config_info" task will not be executed with usage-1, because the request has already returned. + // Therefore, it is necessary to modify the usage job regularly. correctUsage(group, tenant, hasTenant); return pjp.proceed(); } - // 并发删除同一个记录,可能同时走到这里,加上这个接口是异步删除的(提交MergeDataTask给MergeTaskProcessor处理),可能导致usage不止减一。因此还是需要定时修正usage的Job + + // The same record can be deleted concurrently. This interface can be deleted asynchronously(submit MergeDataTask + // to MergeTaskProcessor for processing), It may lead to more than one decrease in usage. + // Therefore, it is necessary to modify the usage job regularly. CounterMode counterMode = CounterMode.DECREMENT; insertOrUpdateUsage(group, tenant, counterMode, hasTenant); return getResult(pjp, response, group, tenant, counterMode, hasTenant); @@ -196,9 +207,9 @@ private void correctUsage(String group, String tenant, boolean hasTenant) { private Object getResult(ProceedingJoinPoint pjp, HttpServletResponse response, String group, String tenant, CounterMode counterMode, boolean hasTenant) throws Throwable { try { - // 执行实际操作 + // Execute operation actually. Object result = pjp.proceed(); - // 根据执行结果判定是否需要回滚 + // Execute whether to callback based on the sql operation result. doResult(counterMode, response, group, tenant, result, hasTenant); return result; } catch (Throwable throwable) { @@ -210,7 +221,7 @@ private Object getResult(ProceedingJoinPoint pjp, HttpServletResponse response, } /** - * usage计数器服务:无论容量管理的限制检验功能是否开启,都会进行计数 + * Usage counting service: it will count whether the limination check funtion will be open. */ private void insertOrUpdateUsage(String group, String tenant, CounterMode counterMode, boolean hasTenant) { try { @@ -249,7 +260,7 @@ private LimitType getLimitType(CounterMode counterMode, String group, String ten } /** - * 编码字节数 + * Get and return the byte size of encoding. */ private int getCurrentSize(String content) { try { @@ -322,13 +333,13 @@ private boolean isSizeLimited(String group, String tenant, int currentSize, bool if (capacity != null) { Integer maxSize = getMaxSize(isAggr, capacity); if (maxSize == 0) { - // 已经存在容量信息记录,maxSize=0,则使用"默认maxSize限制值"进行比较 + // If there exists capacity info and maxSize = 0, then it uses maxSize limination default value to compare. return isOverSize(group, tenant, currentSize, defaultMaxSize, hasTenant); } - // 已经存在容量信息记录,maxSize!=0 + // If there exists capacity info, then maxSize!=0. return isOverSize(group, tenant, currentSize, maxSize, hasTenant); } - // 不已经存在容量信息记录,使用"默认maxSize限制值"进行比较 + // If there no exists capacity info, then it uses maxSize limination default value to compare. return isOverSize(group, tenant, currentSize, defaultMaxSize, hasTenant); } @@ -409,13 +420,13 @@ private void rollbackClusterUsage(CounterMode counterMode) { } /** - * limit tyep + * limit tyep. * - * @author Nacos + * @author Nacos. */ public enum LimitType { /** - * over limit + * over limit. */ OVER_CLUSTER_QUOTA("超过集群配置个数上限", 429), OVER_GROUP_QUOTA("超过该Group配置个数上限", 429), diff --git a/config/src/main/java/com/alibaba/nacos/config/server/aspect/RequestLogAspect.java b/config/src/main/java/com/alibaba/nacos/config/server/aspect/RequestLogAspect.java index 2fa902f4f2d..00d7ce9dd0d 100755 --- a/config/src/main/java/com/alibaba/nacos/config/server/aspect/RequestLogAspect.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/aspect/RequestLogAspect.java @@ -41,21 +41,21 @@ public class RequestLogAspect { /** - * publish config + * Publish config. */ private static final String CLIENT_INTERFACE_PUBLISH_SINGLE_CONFIG = "execution(* com.alibaba.nacos.config.server.controller.ConfigController.publishConfig(..)) && args" + "(request,response,dataId,group,tenant,content,..)"; /** - * get config + * Get config. */ private static final String CLIENT_INTERFACE_GET_CONFIG = "execution(* com.alibaba.nacos.config.server.controller.ConfigController.getConfig(..)) && args(request," + "response,dataId,group,tenant,..)"; /** - * remove config + * Remove config. */ private static final String CLIENT_INTERFACE_REMOVE_ALL_CONFIG = "execution(* com.alibaba.nacos.config.server.controller.ConfigController.deleteConfig(..)) && args(request," @@ -63,7 +63,7 @@ public class RequestLogAspect { /** - * publishSingle + * PublishSingle. */ @Around(CLIENT_INTERFACE_PUBLISH_SINGLE_CONFIG) public Object interfacePublishSingle(ProceedingJoinPoint pjp, HttpServletRequest request, @@ -74,7 +74,7 @@ public Object interfacePublishSingle(ProceedingJoinPoint pjp, HttpServletRequest } /** - * removeAll + * RemoveAll. */ @Around(CLIENT_INTERFACE_REMOVE_ALL_CONFIG) public Object interfaceRemoveAll(ProceedingJoinPoint pjp, HttpServletRequest request, HttpServletResponse response, @@ -83,7 +83,7 @@ public Object interfaceRemoveAll(ProceedingJoinPoint pjp, HttpServletRequest req } /** - * getConfig + * GetConfig. */ @Around(CLIENT_INTERFACE_GET_CONFIG) public Object interfaceGetConfig(ProceedingJoinPoint pjp, HttpServletRequest request, HttpServletResponse response, @@ -95,7 +95,7 @@ public Object interfaceGetConfig(ProceedingJoinPoint pjp, HttpServletRequest req } /** - * client api request log rt | status | requestIp | opType | dataId | group | datumId | md5 + * Client api request log rt | status | requestIp | opType | dataId | group | datumId | md5. */ private Object logClientRequest(String requestType, ProceedingJoinPoint pjp, HttpServletRequest request, HttpServletResponse response, String dataId, String group, String tenant, String md5) throws Throwable { diff --git a/config/src/main/java/com/alibaba/nacos/config/server/auth/ConfigResourceParser.java b/config/src/main/java/com/alibaba/nacos/config/server/auth/ConfigResourceParser.java index 5328884fbf7..4bfc266ac2e 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/auth/ConfigResourceParser.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/auth/ConfigResourceParser.java @@ -24,7 +24,7 @@ import org.apache.commons.lang3.StringUtils; /** - * Config resource parser + * Config resource parser. * * @author nkorange * @since 1.2.0 diff --git a/config/src/main/java/com/alibaba/nacos/config/server/auth/EmbeddedPermissionPersistServiceImpl.java b/config/src/main/java/com/alibaba/nacos/config/server/auth/EmbeddedPermissionPersistServiceImpl.java index 119270a367d..dfa374ce7a7 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/auth/EmbeddedPermissionPersistServiceImpl.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/auth/EmbeddedPermissionPersistServiceImpl.java @@ -32,7 +32,7 @@ import static com.alibaba.nacos.config.server.service.repository.RowMapperManager.PERMISSION_ROW_MAPPER; /** - * There is no self-augmented primary key + * There is no self-augmented primary key. * * @author liaochuntao */ @@ -70,12 +70,26 @@ public Page getPermissions(String role, int pageNo, int pageSize return pageInfo; } + /** + * Execute ddd user permission operation. + * + * @param role role info string value. + * @param resource resource info string value. + * @param action action info string value. + */ public void addPermission(String role, String resource, String action) { String sql = "INSERT into permissions (role, resource, action) VALUES (?, ?, ?)"; EmbeddedStorageContextUtils.addSqlContext(sql, role, resource, action); databaseOperate.blockUpdate(); } + /** + * Execute delete user permission operation. + * + * @param role role info string value. + * @param resource resource info string value. + * @param action action info string value. + */ public void deletePermission(String role, String resource, String action) { String sql = "DELETE from permissions WHERE role=? and resource=? and action=?"; EmbeddedStorageContextUtils.addSqlContext(sql, role, resource, action); diff --git a/config/src/main/java/com/alibaba/nacos/config/server/auth/EmbeddedRolePersistServiceImpl.java b/config/src/main/java/com/alibaba/nacos/config/server/auth/EmbeddedRolePersistServiceImpl.java index 710d13e57c3..19f4e582345 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/auth/EmbeddedRolePersistServiceImpl.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/auth/EmbeddedRolePersistServiceImpl.java @@ -32,7 +32,7 @@ import static com.alibaba.nacos.config.server.service.repository.RowMapperManager.ROLE_INFO_ROW_MAPPER; /** - * There is no self-augmented primary key + * There is no self-augmented primary key. * * @author liaochuntao */ @@ -85,6 +85,12 @@ public Page getRolesByUserName(String username, int pageNo, int pageSi } + /** + * Add user role. + * + * @param role role string value. + * @param userName username string value. + */ public void addRole(String role, String userName) { String sql = "INSERT into roles (role, username) VALUES (?, ?)"; @@ -97,6 +103,11 @@ public void addRole(String role, String userName) { } } + /** + * Delete user role. + * + * @param role role string value. + */ public void deleteRole(String role) { String sql = "DELETE from roles WHERE role=?"; try { @@ -107,6 +118,12 @@ public void deleteRole(String role) { } } + /** + * Execute delete role sql operation. + * + * @param role role string value. + * @param username user string value. + */ public void deleteRole(String role, String username) { String sql = "DELETE from roles WHERE role=? and username=?"; try { diff --git a/config/src/main/java/com/alibaba/nacos/config/server/auth/EmbeddedUserPersistServiceImpl.java b/config/src/main/java/com/alibaba/nacos/config/server/auth/EmbeddedUserPersistServiceImpl.java index 1256c0d3b77..8029c0fa53e 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/auth/EmbeddedUserPersistServiceImpl.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/auth/EmbeddedUserPersistServiceImpl.java @@ -32,7 +32,7 @@ import static com.alibaba.nacos.config.server.service.repository.RowMapperManager.USER_ROW_MAPPER; /** - * There is no self-augmented primary key + * There is no self-augmented primary key. * * @author liaochuntao */ @@ -46,6 +46,12 @@ public class EmbeddedUserPersistServiceImpl implements UserPersistService { @Autowired private EmbeddedStoragePersistServiceImpl persistService; + /** + * Execute create user operation. + * + * @param username username string value. + * @param password password string value. + */ public void createUser(String username, String password) { String sql = "INSERT into users (username, password, enabled) VALUES (?, ?, ?)"; @@ -57,6 +63,11 @@ public void createUser(String username, String password) { } } + /** + * Execute delete user operation. + * + * @param username username string value. + */ public void deleteUser(String username) { String sql = "DELETE from users WHERE username=?"; try { @@ -67,6 +78,12 @@ public void deleteUser(String username) { } } + /** + * Execute update user password operation. + * + * @param username username string value. + * @param password password string value. + */ public void updateUserPassword(String username, String password) { try { EmbeddedStorageContextUtils @@ -100,6 +117,4 @@ public Page getUsers(int pageNo, int pageSize) { } return pageInfo; } - - } diff --git a/config/src/main/java/com/alibaba/nacos/config/server/auth/ExternalPermissionPersistServiceImpl.java b/config/src/main/java/com/alibaba/nacos/config/server/auth/ExternalPermissionPersistServiceImpl.java index 33a7036434e..25498881ba1 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/auth/ExternalPermissionPersistServiceImpl.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/auth/ExternalPermissionPersistServiceImpl.java @@ -34,6 +34,8 @@ import static com.alibaba.nacos.config.server.service.repository.RowMapperManager.PERMISSION_ROW_MAPPER; /** + * Implemetation of ExternalPermissionPersistServiceImpl. + * * @author liaochuntao */ @Conditional(value = ConditionOnExternalStorage.class) @@ -81,6 +83,13 @@ public Page getPermissions(String role, int pageNo, int pageSize } } + /** + * Execute add permission operation. + * + * @param role role string value. + * @param resource resource string value. + * @param action action string value. + */ public void addPermission(String role, String resource, String action) { String sql = "INSERT into permissions (role, resource, action) VALUES (?, ?, ?)"; @@ -93,6 +102,13 @@ public void addPermission(String role, String resource, String action) { } } + /** + * Execute delete permission operation. + * + * @param role role string value. + * @param resource resource string value. + * @param action action string value. + */ public void deletePermission(String role, String resource, String action) { String sql = "DELETE from permissions WHERE role=? and resource=? and action=?"; diff --git a/config/src/main/java/com/alibaba/nacos/config/server/auth/ExternalRolePersistServiceImpl.java b/config/src/main/java/com/alibaba/nacos/config/server/auth/ExternalRolePersistServiceImpl.java index d867907c78d..1abbca4ef36 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/auth/ExternalRolePersistServiceImpl.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/auth/ExternalRolePersistServiceImpl.java @@ -37,6 +37,8 @@ import static com.alibaba.nacos.config.server.service.repository.RowMapperManager.ROLE_INFO_ROW_MAPPER; /** + * Implemetation of ExternalRolePersistServiceImpl. + * * @author liaochuntao */ @Conditional(value = ConditionOnExternalStorage.class) @@ -101,6 +103,12 @@ public Page getRolesByUserName(String username, int pageNo, int pageSi } } + /** + * Execute add role operation. + * + * @param role role string value. + * @param userName username string value. + */ public void addRole(String role, String userName) { String sql = "INSERT into roles (role, username) VALUES (?, ?)"; @@ -113,6 +121,11 @@ public void addRole(String role, String userName) { } } + /** + * Execute delete role operation. + * + * @param role role string value. + */ public void deleteRole(String role) { String sql = "DELETE from roles WHERE role=?"; try { @@ -123,6 +136,12 @@ public void deleteRole(String role) { } } + /** + * Execute delete role operation. + * + * @param role role string value. + * @param username username string value. + */ public void deleteRole(String role, String username) { String sql = "DELETE from roles WHERE role=? and username=?"; try { @@ -143,6 +162,4 @@ public RoleInfo mapRow(ResultSet rs, int rowNum) throws SQLException { return roleInfo; } } - - } diff --git a/config/src/main/java/com/alibaba/nacos/config/server/auth/ExternalUserPersistServiceImpl.java b/config/src/main/java/com/alibaba/nacos/config/server/auth/ExternalUserPersistServiceImpl.java index 0d467c29a92..ecfae4c7014 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/auth/ExternalUserPersistServiceImpl.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/auth/ExternalUserPersistServiceImpl.java @@ -35,6 +35,8 @@ import static com.alibaba.nacos.config.server.service.repository.RowMapperManager.USER_ROW_MAPPER; /** + * Implemetation of ExternalUserPersistServiceImpl. + * * @author liaochuntao */ @Conditional(value = ConditionOnExternalStorage.class) @@ -51,6 +53,12 @@ protected void init() { jt = persistService.getJdbcTemplate(); } + /** + * Execute create user operation. + * + * @param username username string value. + * @param password password string value. + */ public void createUser(String username, String password) { String sql = "INSERT into users (username, password, enabled) VALUES (?, ?, ?)"; @@ -62,6 +70,11 @@ public void createUser(String username, String password) { } } + /** + * Execute delete user operation. + * + * @param username username string value. + */ public void deleteUser(String username) { String sql = "DELETE from users WHERE username=?"; try { @@ -72,6 +85,12 @@ public void deleteUser(String username) { } } + /** + * Execute update user password operation. + * + * @param username username string value. + * @param password password string value. + */ public void updateUserPassword(String username, String password) { try { jt.update("UPDATE users SET password = ? WHERE username=?", password, username); @@ -81,6 +100,12 @@ public void updateUserPassword(String username, String password) { } } + /** + * Execute find user by username operation. + * + * @param username username string value. + * @return User model. + */ public User findUserByUsername(String username) { String sql = "SELECT username,password FROM users WHERE username=? "; try { @@ -120,6 +145,4 @@ public Page getUsers(int pageNo, int pageSize) { throw e; } } - - } diff --git a/config/src/main/java/com/alibaba/nacos/config/server/auth/PermissionInfo.java b/config/src/main/java/com/alibaba/nacos/config/server/auth/PermissionInfo.java index 79ac384addf..169f3b639d1 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/auth/PermissionInfo.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/auth/PermissionInfo.java @@ -19,6 +19,8 @@ import java.io.Serializable; /** + * PermissionInfo model. + * * @author nkorange * @since 1.2.0 */ @@ -27,17 +29,17 @@ public class PermissionInfo implements Serializable { private static final long serialVersionUID = 388813573388837395L; /** - * Role name + * Role name. */ private String role; /** - * Resource + * Resource. */ private String resource; /** - * Action on resource + * Action on resource. */ private String action; diff --git a/config/src/main/java/com/alibaba/nacos/config/server/auth/PermissionPersistService.java b/config/src/main/java/com/alibaba/nacos/config/server/auth/PermissionPersistService.java index b74db220332..3679ab71d78 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/auth/PermissionPersistService.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/auth/PermissionPersistService.java @@ -19,7 +19,7 @@ import com.alibaba.nacos.config.server.model.Page; /** - * Permission CRUD service + * Permission CRUD service. * * @author nkorange * @since 1.2.0 diff --git a/config/src/main/java/com/alibaba/nacos/config/server/auth/RoleInfo.java b/config/src/main/java/com/alibaba/nacos/config/server/auth/RoleInfo.java index ec91f43b097..ba3237d511c 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/auth/RoleInfo.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/auth/RoleInfo.java @@ -19,7 +19,7 @@ import java.io.Serializable; /** - * Role Info + * Role Info. * * @author nkorange * @since 1.2.0 diff --git a/config/src/main/java/com/alibaba/nacos/config/server/auth/RolePersistService.java b/config/src/main/java/com/alibaba/nacos/config/server/auth/RolePersistService.java index 40b3208971e..02674615cc9 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/auth/RolePersistService.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/auth/RolePersistService.java @@ -19,7 +19,7 @@ import com.alibaba.nacos.config.server.model.Page; /** - * Role CRUD service + * Role CRUD service. * * @author nkorange * @since 1.2.0 diff --git a/config/src/main/java/com/alibaba/nacos/config/server/auth/UserPersistService.java b/config/src/main/java/com/alibaba/nacos/config/server/auth/UserPersistService.java index bbd7b7733d5..489d077d41b 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/auth/UserPersistService.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/auth/UserPersistService.java @@ -20,7 +20,7 @@ import com.alibaba.nacos.config.server.model.User; /** - * User CRUD service + * User CRUD service. * * @author nkorange * @since 1.2.0 diff --git a/config/src/main/java/com/alibaba/nacos/config/server/configuration/ConditionOnEmbeddedStorage.java b/config/src/main/java/com/alibaba/nacos/config/server/configuration/ConditionOnEmbeddedStorage.java index 5f812799d63..b244bb34a52 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/configuration/ConditionOnEmbeddedStorage.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/configuration/ConditionOnEmbeddedStorage.java @@ -22,6 +22,8 @@ import org.springframework.core.type.AnnotatedTypeMetadata; /** + * Judge whether to user EmbeddedStorage by condition. + * * @author liaochuntao */ public class ConditionOnEmbeddedStorage implements Condition { diff --git a/config/src/main/java/com/alibaba/nacos/config/server/configuration/ConditionOnExternalStorage.java b/config/src/main/java/com/alibaba/nacos/config/server/configuration/ConditionOnExternalStorage.java index 0132f6b1fbb..fbf0012894c 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/configuration/ConditionOnExternalStorage.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/configuration/ConditionOnExternalStorage.java @@ -22,6 +22,8 @@ import org.springframework.core.type.AnnotatedTypeMetadata; /** + * Judge whether to user ExternalStorage by condition. + * * @author liaochuntao */ public class ConditionOnExternalStorage implements Condition { diff --git a/config/src/main/java/com/alibaba/nacos/config/server/configuration/ConditionStandaloneEmbedStorage.java b/config/src/main/java/com/alibaba/nacos/config/server/configuration/ConditionStandaloneEmbedStorage.java index b9c954c6928..4380d3811cd 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/configuration/ConditionStandaloneEmbedStorage.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/configuration/ConditionStandaloneEmbedStorage.java @@ -23,7 +23,8 @@ import org.springframework.core.type.AnnotatedTypeMetadata; /** - * when embeddedStorage==false + * Judge whether to user StandaloneEmbedStorage by condition. + * When embeddedStorage==false. * * @author liaochuntao */ diff --git a/config/src/main/java/com/alibaba/nacos/config/server/constant/Constants.java b/config/src/main/java/com/alibaba/nacos/config/server/constant/Constants.java index e250653bad4..b5c5ffbc762 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/constant/Constants.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/constant/Constants.java @@ -19,7 +19,7 @@ import com.alibaba.nacos.config.server.model.event.ConfigDumpEvent; /** - * Server Constants + * Server Constants. * * @author Nacos */ @@ -32,12 +32,14 @@ public class Constants { public static final String DEFAULT_GROUP = "DEFAULT_GROUP"; /** - * server端配置文件基目录 + * Config file directory in server side. + * */ public static final String BASE_DIR = "config-data"; /** - * server端配置文件备份目录 + * Back up file directory in server side. + * */ public static final String CONFIG_BAK_DIR = System.getProperty("user.home", "/home/admin") + "/nacos/bak_data"; @@ -78,32 +80,32 @@ public class Constants { public static final String SPACING_INTERVAL = "client-spacing-interval"; /** - * 秒 + * Interval for async update address(unit: second). */ public static final int ASYNC_UPDATE_ADDRESS_INTERVAL = 300; /** - * 秒 + * Interval for polling(unit: second). */ public static final int POLLING_INTERVAL_TIME = 15; /** - * 毫秒 + * Unit: millisecond. */ public static final int ONCE_TIMEOUT = 2000; /** - * 毫秒 + * Unit: millisecond. */ public static final int CONN_TIMEOUT = 2000; /** - * 毫秒 + * Unit: millisecond. */ public static final int SO_TIMEOUT = 60000; /** - * 毫秒 + * Unit: millisecond. */ public static final int RECV_WAIT_TIMEOUT = ONCE_TIMEOUT * 5; @@ -142,48 +144,48 @@ public class Constants { public static final String NACOS_LINE_SEPARATOR = "\r\n"; /** - * 从网络获取数据的总时间, 当超过此时间, 不再从网络获取数据, 单位ms + * Total time of threshold value when getting data from network(unit: millisecond). */ public static final long TOTALTIME_FROM_SERVER = 10000; /** - * 从网络获取数据的总时间的失效时间, 单位ms + * Invalid total time of threshold value when getting data from network(unit: millisecond). */ public static final long TOTALTIME_INVALID_THRESHOLD = 60000; /** - * 发生异常 + * When exception or error occurs. */ public static final int BATCH_OP_ERROR = -1; /** - * 批量操作时, 单条数据的状态码 + * State code of single data when batch operation. */ public static final String BATCH_OP_ERROR_IO_MSG = "get config dump error"; public static final String BATCH_OP_ERROR_CONFLICT_MSG = "config get conflicts"; /** - * 查询成功, 数据存在 + * Batch query when data existent. */ public static final int BATCH_QUERY_EXISTS = 1; public static final String BATCH_QUERY_EXISTS_MSG = "config exits"; /** - * 查询成功, 数据不存在 + * Batch query when data non-existent. */ public static final int BATCH_QUERY_NONEXISTS = 2; public static final String BATCH_QUERY_NONEEXISTS_MSG = "config not exits"; /** - * 新增成功 + * Batch adding successfully. */ public static final int BATCH_ADD_SUCCESS = 3; /** - * 更新成功 + * Batch updating successfully. */ public static final int BATCH_UPDATE_SUCCESS = 4; @@ -200,27 +202,27 @@ public class Constants { public static final int MAX_ADDACK_COUNT = 5; /** - * 数据的初始版本号 + * First version of data. */ public static final int FIRST_VERSION = 1; /** - * 数据被删除的标识版本号 + * Poison version when data is deleted. */ public static final int POISON_VERSION = -1; /** - * 写磁盘文件时, 临时版本号 + * Temporary version when disk file is full. */ public static final int TEMP_VERSION = 0; /** - * 获取数据的顺序:容灾文件-> 服务器 -> 本地缓存 + * Plain sequence of getting data: backup file -> server -> local file. */ public static final int GETCONFIG_LOCAL_SERVER_SNAPSHOT = 1; /** - * 获取数据的顺序:容灾文件-> 本地缓存 -> 服务器 + * Plain sequence of getting data: backup file -> local file -> server. */ public static final int GETCONFIG_LOCAL_SNAPSHOT_SERVER = 2; @@ -231,17 +233,17 @@ public class Constants { public static final String CLIENT_REQUEST_TOKEN_HEADER = "Client-RequestToken"; /** - * client, sdk请求server服务的身份 + * Client, identity for sdk request to server. */ public static final String REQUEST_IDENTITY = "Request-Identity"; /** - * 转发给Leader节点 + * Forward to leader node. */ public static final String FORWARD_LEADER = "Forward-Leader"; /** - * 鉴权结果信息 + * Acl result information. */ public static final String ACL_RESPONSE = "ACL-Response"; @@ -249,20 +251,20 @@ public class Constants { public static final String CONFIG_MODEL_RAFT_GROUP = "nacos_config"; - public static int DATA_IN_BODY_VERSION = 204; + public static final int DATA_IN_BODY_VERSION = 204; /** - * Configure the dump event name + * Configure the dump event name. */ public static final String EXTEND_INFO_CONFIG_DUMP_EVENT = ConfigDumpEvent.class.getName(); /** - * Configure the dump event-list name + * Configure the dump event-list name. */ public static final String EXTEND_INFOS_CONFIG_DUMP_EVENT = ConfigDumpEvent.class.getName() + "@@many"; /** - * Specifies that reads wait without timeout + * Specifies that reads wait without timeout. */ public static final String EXTEND_NEED_READ_UNTIL_HAVE_DATA = "00--0-read-join-0--00"; } diff --git a/config/src/main/java/com/alibaba/nacos/config/server/constant/CounterMode.java b/config/src/main/java/com/alibaba/nacos/config/server/constant/CounterMode.java index 844da32b5f0..10c14a51cfa 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/constant/CounterMode.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/constant/CounterMode.java @@ -17,21 +17,27 @@ package com.alibaba.nacos.config.server.constant; /** - * counter mode + * counter mode. * * @author hexu.hxy * @date 2018/3/13 */ public enum CounterMode { + /** - * 增加 + * Increment. */ INCREMENT, /** - * 减少 + * Decrement. */ DECREMENT; + /** + * Reverse the two mode value. + * + * @return + */ public CounterMode reverse() { if (INCREMENT == this) { return DECREMENT; diff --git a/config/src/main/java/com/alibaba/nacos/config/server/controller/CapacityController.java b/config/src/main/java/com/alibaba/nacos/config/server/controller/CapacityController.java index 1549354f7df..be71539a115 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/controller/CapacityController.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/controller/CapacityController.java @@ -24,12 +24,16 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.PostMapping; import javax.servlet.http.HttpServletResponse; /** - * Capacity Management + * Capacity Management. * * @author hexu.hxy */ @@ -86,7 +90,7 @@ public RestResult getCapacity(HttpServletResponse response, @RequestPa } /** - * 修改Group或租户的容量,容量信息还没有初始化的则初始化记录 + * Modify group or capacity of tenant, and init record when capacity informations are still initial. */ @PostMapping public RestResult updateCapacity(HttpServletResponse response, diff --git a/config/src/main/java/com/alibaba/nacos/config/server/controller/CommunicationController.java b/config/src/main/java/com/alibaba/nacos/config/server/controller/CommunicationController.java index 80e20b0f91f..f55a7e9d302 100755 --- a/config/src/main/java/com/alibaba/nacos/config/server/controller/CommunicationController.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/controller/CommunicationController.java @@ -33,7 +33,7 @@ import javax.servlet.http.HttpServletResponse; /** - * 用于其他节点通知的控制器 + * Controller for other node notification. * * @author boyan * @date 2010-5-7 @@ -55,7 +55,8 @@ public CommunicationController(DumpService dumpService, LongPollingService longP } /** - * 通知配置信息改变 + * Notify the change of config information. + * */ @GetMapping("/dataChange") public Boolean notifyConfigInfo(HttpServletRequest request, @RequestParam("dataId") String dataId, @@ -77,7 +78,8 @@ public Boolean notifyConfigInfo(HttpServletRequest request, @RequestParam("dataI } /** - * 在本台机器上获得订阅改配置的客户端信息 + * Get client config information of subscriber in local machine. + * */ @GetMapping("/configWatchers") public SampleResult getSubClientConfig(@RequestParam("dataId") String dataId, @RequestParam("group") String group, @@ -87,7 +89,8 @@ public SampleResult getSubClientConfig(@RequestParam("dataId") String dataId, @R } /** - * 在本台机器上获得客户端监听的配置列表 + * Get client config listener lists of subscriber in local machine. + * */ @GetMapping("/watcherConfigs") public SampleResult getSubClientConfigByIp(HttpServletRequest request, HttpServletResponse response, diff --git a/config/src/main/java/com/alibaba/nacos/config/server/controller/ConfigController.java b/config/src/main/java/com/alibaba/nacos/config/server/controller/ConfigController.java index 9a176a3fa07..7d61c3f8eae 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/controller/ConfigController.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/controller/ConfigController.java @@ -80,7 +80,7 @@ import java.util.stream.Collectors; /** - * 软负载客户端发布数据专用控制器 + * Special controller for soft load client to publish data. * * @author leiwen */ @@ -88,7 +88,7 @@ @RequestMapping(Constants.CONFIG_CONTROLLER_PATH) public class ConfigController { - private static final Logger log = LoggerFactory.getLogger(ConfigController.class); + private static final Logger LOGGER = LoggerFactory.getLogger(ConfigController.class); private static final String NAMESPACE_PUBLIC_KEY = "public"; @@ -115,7 +115,7 @@ public ConfigController(ConfigServletInner configServletInner, PersistService pe /** * Adds or updates non-aggregated data. * - * @throws NacosException + * @throws NacosException NacosException. */ @PostMapping @Secured(action = ActionTypes.WRITE, parser = ConfigResourceParser.class) @@ -133,7 +133,7 @@ public Boolean publishConfig(HttpServletRequest request, HttpServletResponse res @RequestParam(value = "schema", required = false) String schema) throws NacosException { final String srcIp = RequestUtil.getRemoteIp(request); - String requestIpApp = RequestUtil.getAppName(request); + final String requestIpApp = RequestUtil.getAppName(request); // check tenant ParamUtils.checkTenant(tenant); ParamUtils.checkParam(dataId, group, "datumId", content); @@ -148,7 +148,7 @@ public Boolean publishConfig(HttpServletRequest request, HttpServletResponse res ParamUtils.checkParam(configAdvanceInfo); if (AggrWhitelist.isAggrDataId(dataId)) { - log.warn("[aggr-conflict] {} attemp to publish single data, {}, {}", RequestUtil.getRemoteIp(request), + LOGGER.warn("[aggr-conflict] {} attemp to publish single data, {}, {}", RequestUtil.getRemoteIp(request), dataId, group); throw new NacosException(NacosException.NO_RIGHT, "dataId:" + dataId + " is aggr"); } @@ -180,11 +180,11 @@ public Boolean publishConfig(HttpServletRequest request, HttpServletResponse res } /** - * get configure board infomation fail + * Get configure board infomation fail. * - * @throws ServletException - * @throws IOException - * @throws NacosException + * @throws ServletException ServletException. + * @throws IOException IOException. + * @throws NacosException NacosException. */ @GetMapping @Secured(action = ActionTypes.READ, parser = ConfigResourceParser.class) @@ -205,9 +205,9 @@ public void getConfig(HttpServletRequest request, HttpServletResponse response, } /** - * Get the specific configuration information that the console USES + * Get the specific configuration information that the console USES. * - * @throws NacosException + * @throws NacosException NacosException. */ @GetMapping(params = "show=all") @Secured(action = ActionTypes.READ, parser = ConfigResourceParser.class) @@ -223,9 +223,9 @@ public ConfigAllInfo detailConfigInfo(HttpServletRequest request, HttpServletRes } /** - * Synchronously delete all pre-aggregation data under a dataId + * Synchronously delete all pre-aggregation data under a dataId. * - * @throws NacosException + * @throws NacosException NacosException. */ @DeleteMapping @Secured(action = ActionTypes.WRITE, parser = ConfigResourceParser.class) @@ -253,6 +253,8 @@ public Boolean deleteConfig(HttpServletRequest request, HttpServletResponse resp } /** + * Execute delete config operation. + * * @return java.lang.Boolean * @author klw * @Description: delete configuration based on multiple config ids @@ -292,7 +294,7 @@ public RestResult getConfigAdvanceInfo(@RequestParam("dataId" } /** - * The client listens for configuration changes + * The client listens for configuration changes. */ @PostMapping("/listener") @Secured(action = ActionTypes.READ, parser = ConfigResourceParser.class) @@ -318,7 +320,7 @@ public void listener(HttpServletRequest request, HttpServletResponse response) } /** - * Subscribe to configured client information + * Subscribe to configured client information. */ @GetMapping("/listener") @Secured(action = ActionTypes.READ, parser = ConfigResourceParser.class) @@ -356,7 +358,7 @@ public Page searchConfig(@RequestParam("dataId") String dataId, @Req return persistService.findConfigInfo4Page(pageNo, pageSize, dataId, group, tenant, configAdvanceInfo); } catch (Exception e) { String errorMsg = "serialize page error, dataId=" + dataId + ", group=" + group; - log.error(errorMsg, e); + LOGGER.error(errorMsg, e); throw new RuntimeException(errorMsg, e); } } @@ -383,11 +385,19 @@ public Page fuzzySearchConfig(@RequestParam("dataId") String dataId, return persistService.findConfigInfoLike4Page(pageNo, pageSize, dataId, group, tenant, configAdvanceInfo); } catch (Exception e) { String errorMsg = "serialize page error, dataId=" + dataId + ", group=" + group; - log.error(errorMsg, e); + LOGGER.error(errorMsg, e); throw new RuntimeException(errorMsg, e); } } + /** + * Execute to remove beta operation. + * + * @param dataId dataId string value. + * @param group group string value. + * @param tenant tenant string value. + * @return Execute to operate result. + */ @DeleteMapping(params = "beta=true") @Secured(action = ActionTypes.WRITE, parser = ConfigResourceParser.class) public RestResult stopBeta(@RequestParam(value = "dataId") String dataId, @@ -397,7 +407,7 @@ public RestResult stopBeta(@RequestParam(value = "dataId") String dataI try { persistService.removeConfigInfo4Beta(dataId, group, tenant); } catch (Exception e) { - log.error("remove beta data error", e); + LOGGER.error("remove beta data error", e); rr.setCode(500); rr.setData(false); rr.setMessage("remove beta data error"); @@ -411,6 +421,14 @@ public RestResult stopBeta(@RequestParam(value = "dataId") String dataI return rr; } + /** + * Execute to query beta operation. + * + * @param dataId dataId string value. + * @param group group string value. + * @param tenant tenant string value. + * @return RestResult for ConfigInfo4Beta. + */ @GetMapping(params = "beta=true") @Secured(action = ActionTypes.READ, parser = ConfigResourceParser.class) public RestResult queryBeta(@RequestParam(value = "dataId") String dataId, @@ -424,13 +442,23 @@ public RestResult queryBeta(@RequestParam(value = "dataId") Str rr.setMessage("stop beta ok"); return rr; } catch (Exception e) { - log.error("remove beta data error", e); + LOGGER.error("remove beta data error", e); rr.setCode(500); rr.setMessage("remove beta data error"); return rr; } } + /** + * Execute export config operation. + * + * @param dataId dataId string value. + * @param group group string value. + * @param appName appName string value. + * @param tenant tenant string value. + * @param ids id list value. + * @return ResponseEntity. + */ @GetMapping(params = "export=true") @Secured(action = ActionTypes.READ, parser = ConfigResourceParser.class) public ResponseEntity exportConfig(@RequestParam(value = "dataId", required = false) String dataId, @@ -473,6 +501,17 @@ public ResponseEntity exportConfig(@RequestParam(value = "dataId", requi return new ResponseEntity(ZipUtils.zip(zipItemList), headers, HttpStatus.OK); } + /** + * Execute import and publish config operation. + * + * @param request http servlet request . + * @param srcUser src user string value. + * @param namespace namespace string value. + * @param policy policy model. + * @param file MultipartFile. + * @return RestResult Map. + * @throws NacosException NacosException. + */ @PostMapping(params = "import=true") @Secured(action = ActionTypes.WRITE, parser = ConfigResourceParser.class) public RestResult> importAndPublishConfig(HttpServletRequest request, @@ -525,7 +564,7 @@ public RestResult> importAndPublishConfig(HttpServletRequest tempDataId = tempDataId.substring(0, tempDataId.lastIndexOf(".")) + "~" + tempDataId .substring(tempDataId.lastIndexOf(".") + 1); } - String metaDataId = group + "." + tempDataId + ".app"; + final String metaDataId = group + "." + tempDataId + ".app"; ConfigAllInfo ci = new ConfigAllInfo(); ci.setTenant(namespace); ci.setGroup(group); @@ -539,7 +578,7 @@ public RestResult> importAndPublishConfig(HttpServletRequest } } catch (IOException e) { failedData.put("succCount", 0); - log.error("parsing data failed", e); + LOGGER.error("parsing data failed", e); return ResultBuilder.buildResult(ResultCodeEnum.PARSING_DATA_FAILED, failedData); } if (configInfoList == null || configInfoList.isEmpty()) { @@ -563,6 +602,17 @@ public RestResult> importAndPublishConfig(HttpServletRequest return ResultBuilder.buildSuccessResult("导入成功", saveResult); } + /** + * Execute clone config operation. + * + * @param request http servlet request . + * @param srcUser src user string value. + * @param namespace namespace string value. + * @param configBeansList config beans list. + * @param policy config policy model. + * @return RestResult for map. + * @throws NacosException NacosException. + */ @PostMapping(params = "clone=true") @Secured(action = ActionTypes.WRITE, parser = ConfigResourceParser.class) public RestResult> cloneConfig(HttpServletRequest request, diff --git a/config/src/main/java/com/alibaba/nacos/config/server/controller/ConfigOpsController.java b/config/src/main/java/com/alibaba/nacos/config/server/controller/ConfigOpsController.java index 5bcc52d1033..ec0900f7b38 100755 --- a/config/src/main/java/com/alibaba/nacos/config/server/controller/ConfigOpsController.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/controller/ConfigOpsController.java @@ -123,6 +123,7 @@ public RestResult derbyOps(@RequestParam(value = "sql") String sql) { /** * // TODO the front page should appear operable The external data source is imported into derby. + * * mysqldump --defaults-file="XXX" --host=0.0.0.0 --protocol=tcp --user=XXX --extended-insert=FALSE \ * --complete-insert=TRUE \ --skip-triggers --no-create-info --skip-column-statistics "{SCHEMA}" "{TABLE_NAME}" * diff --git a/config/src/main/java/com/alibaba/nacos/config/server/controller/ConfigServletInner.java b/config/src/main/java/com/alibaba/nacos/config/server/controller/ConfigServletInner.java index 453b55137c9..d6a74b6c75b 100755 --- a/config/src/main/java/com/alibaba/nacos/config/server/controller/ConfigServletInner.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/controller/ConfigServletInner.java @@ -24,7 +24,13 @@ import com.alibaba.nacos.config.server.service.LongPollingService; import com.alibaba.nacos.config.server.service.repository.PersistService; import com.alibaba.nacos.config.server.service.trace.ConfigTraceService; -import com.alibaba.nacos.config.server.utils.*; +import com.alibaba.nacos.config.server.utils.MD5Util; +import com.alibaba.nacos.config.server.utils.Protocol; +import com.alibaba.nacos.config.server.utils.RequestUtil; +import com.alibaba.nacos.config.server.utils.GroupKey2; +import com.alibaba.nacos.config.server.utils.PropertyUtil; +import com.alibaba.nacos.config.server.utils.LogUtil; +import com.alibaba.nacos.config.server.utils.TimeUtils; import com.alibaba.nacos.core.utils.Loggers; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -46,7 +52,7 @@ import static com.alibaba.nacos.config.server.utils.LogUtil.pullLog; /** - * ConfigServlet inner for aop + * ConfigServlet inner for aop. * * @author Nacos */ @@ -64,21 +70,21 @@ public class ConfigServletInner { private static final int START_LONG_POLLING_VERSION_NUM = 204; /** - * 轮询接口 + * 轮询接口. */ public String doPollingConfig(HttpServletRequest request, HttpServletResponse response, Map clientMd5Map, int probeRequestSize) throws IOException { - // 长轮询 + // Long polling. if (LongPollingService.isSupportLongPolling(request)) { longPollingService.addLongPollingClient(request, response, clientMd5Map, probeRequestSize); return HttpServletResponse.SC_OK + ""; } - // else 兼容短轮询逻辑 + // Compatible with short polling logic. List changedGroups = MD5Util.compareMd5(request, response, clientMd5Map); - // 兼容短轮询result + // Compatible with short polling result. String oldResult = MD5Util.compareMd5OldResult(changedGroups); String newResult = MD5Util.compareMd5ResultString(changedGroups); @@ -88,9 +94,7 @@ public String doPollingConfig(HttpServletRequest request, HttpServletResponse re } int versionNum = Protocol.getVersionNumber(version); - /** - * 2.0.4版本以前, 返回值放入header中 - */ + // Befor 2.0.4 version, return value is put into header. if (versionNum < START_LONG_POLLING_VERSION_NUM) { response.addHeader(Constants.PROBE_MODIFY_RESPONSE, oldResult); response.addHeader(Constants.PROBE_MODIFY_RESPONSE_NEW, newResult); @@ -100,7 +104,7 @@ public String doPollingConfig(HttpServletRequest request, HttpServletResponse re Loggers.AUTH.info("new content:" + newResult); - // 禁用缓存 + // Disable cache. response.setHeader("Pragma", "no-cache"); response.setDateHeader("Expires", 0); response.setHeader("Cache-Control", "no-cache,no-store"); @@ -109,7 +113,7 @@ public String doPollingConfig(HttpServletRequest request, HttpServletResponse re } /** - * 同步配置获取接口 + * Execute to get config API. */ public String doGetConfig(HttpServletRequest request, HttpServletResponse response, String dataId, String group, String tenant, String tag, String clientIp) throws IOException, ServletException { @@ -176,7 +180,7 @@ public String doGetConfig(HttpServletRequest request, HttpServletResponse respon } if (configInfoBase == null && fileNotExist(file)) { // FIXME CacheItem - // 不存在了无法简单的计算推送delayed,这里简单的记做-1 + // No longer exists. It is impossible to simply calculate the push delayed. Here, simply record it as - 1. ConfigTraceService.logPullEvent(dataId, group, tenant, requestIpApp, -1, ConfigTraceService.PULL_EVENT_NOTFOUND, -1, requestIp); @@ -208,7 +212,7 @@ public String doGetConfig(HttpServletRequest request, HttpServletResponse respon } if (configInfoBase == null && fileNotExist(file)) { // FIXME CacheItem - // 不存在了无法简单的计算推送delayed,这里简单的记做-1 + // No longer exists. It is impossible to simply calculate the push delayed. Here, simply record it as - 1. ConfigTraceService.logPullEvent(dataId, group, tenant, requestIpApp, -1, ConfigTraceService.PULL_EVENT_NOTFOUND, -1, requestIp); @@ -224,9 +228,8 @@ public String doGetConfig(HttpServletRequest request, HttpServletResponse respon } response.setHeader(Constants.CONTENT_MD5, md5); - /** - * 禁用缓存 - */ + + // Disable cache. response.setHeader("Pragma", "no-cache"); response.setDateHeader("Expires", 0); response.setHeader("Cache-Control", "no-cache,no-store"); @@ -252,7 +255,7 @@ public String doGetConfig(HttpServletRequest request, HttpServletResponse respon final long delayed = System.currentTimeMillis() - lastModified; // TODO distinguish pull-get && push-get - // 否则无法直接把delayed作为推送延时的依据,因为主动get请求的delayed值都很大 + // Otherwise, delayed cannot be used as the basis of push delay directly, because the delayed value of active get requests is very large. ConfigTraceService.logPullEvent(dataId, group, tenant, requestIpApp, lastModified, ConfigTraceService.PULL_EVENT_OK, delayed, requestIp); @@ -264,7 +267,7 @@ public String doGetConfig(HttpServletRequest request, HttpServletResponse respon } } else if (lockResult == 0) { - // FIXME CacheItem 不存在了无法简单的计算推送delayed,这里简单的记做-1 + // FIXME CacheItem No longer exists. It is impossible to simply calculate the push delayed. Here, simply record it as - 1. ConfigTraceService .logPullEvent(dataId, group, tenant, requestIpApp, -1, ConfigTraceService.PULL_EVENT_NOTFOUND, -1, requestIp); @@ -291,35 +294,30 @@ private static void releaseConfigReadLock(String groupKey) { } private static int tryConfigReadLock(String groupKey) { - /** - * 默认加锁失败 - */ + + // Lock failed by default. int lockResult = -1; - /** - * 尝试加锁,最多10次 - */ + + // Try to get lock times, max value: 10; for (int i = TRY_GET_LOCK_TIMES; i >= 0; --i) { lockResult = ConfigCacheService.tryReadLock(groupKey); - /** - * 数据不存在 - */ + + // The data is non-existent. if (0 == lockResult) { break; } - /** - * success - */ + // Success if (lockResult > 0) { break; } - /** - * retry - */ + + // Retry. if (i > 0) { try { Thread.sleep(1); } catch (Exception e) { + LogUtil.pullCheckLog.error("An Exception occurred while thread sleep", e); } } } diff --git a/config/src/main/java/com/alibaba/nacos/config/server/controller/HealthController.java b/config/src/main/java/com/alibaba/nacos/config/server/controller/HealthController.java index da8bce23772..1be5375c08d 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/controller/HealthController.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/controller/HealthController.java @@ -29,7 +29,7 @@ import javax.annotation.PostConstruct; /** - * health service + * Health service. * * @author Nacos */ diff --git a/config/src/main/java/com/alibaba/nacos/config/server/controller/HistoryController.java b/config/src/main/java/com/alibaba/nacos/config/server/controller/HistoryController.java index 1052299f55e..13f4df9d4fa 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/controller/HistoryController.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/controller/HistoryController.java @@ -32,7 +32,7 @@ import javax.servlet.http.HttpServletResponse; /** - * 管理控制器。 + * History management controller. * * @author Nacos */ @@ -43,6 +43,18 @@ public class HistoryController { @Autowired protected PersistService persistService; + /** + * Query the list history config. + * + * @param dataId dataId string value. + * @param group group string value. + * @param tenant tenant string value. + * @param appName appName string value. + * @param pageNo pageNo string value. + * @param pageSize pageSize string value. + * @param modelMap modeMap. + * @return + */ @GetMapping(params = "search=accurate") public Page listConfigHistory(@RequestParam("dataId") String dataId, // @RequestParam("group") String group, // @@ -55,12 +67,12 @@ public Page listConfigHistory(@RequestParam("dataId") String pageNo = null == pageNo ? 1 : pageNo; pageSize = null == pageSize ? 100 : pageSize; pageSize = Math.min(500, pageSize); - // configInfoBase没有appName字段 + // configInfoBase has no appName field. return persistService.findConfigHistory(dataId, group, tenant, pageNo, pageSize); } /** - * 查看配置历史信息详情 + * Query the detailed configuration history informations. */ @GetMapping public ConfigHistoryInfo getConfigHistoryInfo(HttpServletRequest request, HttpServletResponse response, diff --git a/config/src/main/java/com/alibaba/nacos/config/server/controller/ListenerController.java b/config/src/main/java/com/alibaba/nacos/config/server/controller/ListenerController.java index 1c259d55c73..045ab4d5db4 100755 --- a/config/src/main/java/com/alibaba/nacos/config/server/controller/ListenerController.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/controller/ListenerController.java @@ -33,7 +33,7 @@ import java.util.Map; /** - * Config longpolling + * Config longpolling. * * @author Nacos */ @@ -49,7 +49,7 @@ public ListenerController(ConfigSubService configSubService) { } /** - * 获取客户端订阅配置信息 + * Get subscribe information from client side. */ @GetMapping public GroupkeyListenserStatus getAllSubClientConfigByIp(@RequestParam("ip") String ip, @@ -69,7 +69,7 @@ public GroupkeyListenserStatus getAllSubClientConfigByIp(@RequestParam("ip") Str configMd5Status.put(config.getKey(), config.getValue()); } } else { - // 默认值获取公共配置,如果想看所有配置,要加all + // Get common config default value, if want to get all config, you need to add "all". if (all) { configMd5Status.put(config.getKey(), config.getValue()); } else {
mysqldump --defaults-file="XXX" --host=0.0.0.0 --protocol=tcp --user=XXX --extended-insert=FALSE \ * --complete-insert=TRUE \ --skip-triggers --no-create-info --skip-column-statistics "{SCHEMA}" "{TABLE_NAME}" * diff --git a/config/src/main/java/com/alibaba/nacos/config/server/controller/ConfigServletInner.java b/config/src/main/java/com/alibaba/nacos/config/server/controller/ConfigServletInner.java index 453b55137c9..d6a74b6c75b 100755 --- a/config/src/main/java/com/alibaba/nacos/config/server/controller/ConfigServletInner.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/controller/ConfigServletInner.java @@ -24,7 +24,13 @@ import com.alibaba.nacos.config.server.service.LongPollingService; import com.alibaba.nacos.config.server.service.repository.PersistService; import com.alibaba.nacos.config.server.service.trace.ConfigTraceService; -import com.alibaba.nacos.config.server.utils.*; +import com.alibaba.nacos.config.server.utils.MD5Util; +import com.alibaba.nacos.config.server.utils.Protocol; +import com.alibaba.nacos.config.server.utils.RequestUtil; +import com.alibaba.nacos.config.server.utils.GroupKey2; +import com.alibaba.nacos.config.server.utils.PropertyUtil; +import com.alibaba.nacos.config.server.utils.LogUtil; +import com.alibaba.nacos.config.server.utils.TimeUtils; import com.alibaba.nacos.core.utils.Loggers; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -46,7 +52,7 @@ import static com.alibaba.nacos.config.server.utils.LogUtil.pullLog; /** - * ConfigServlet inner for aop + * ConfigServlet inner for aop. * * @author Nacos */ @@ -64,21 +70,21 @@ public class ConfigServletInner { private static final int START_LONG_POLLING_VERSION_NUM = 204; /** - * 轮询接口 + * 轮询接口. */ public String doPollingConfig(HttpServletRequest request, HttpServletResponse response, Map clientMd5Map, int probeRequestSize) throws IOException { - // 长轮询 + // Long polling. if (LongPollingService.isSupportLongPolling(request)) { longPollingService.addLongPollingClient(request, response, clientMd5Map, probeRequestSize); return HttpServletResponse.SC_OK + ""; } - // else 兼容短轮询逻辑 + // Compatible with short polling logic. List changedGroups = MD5Util.compareMd5(request, response, clientMd5Map); - // 兼容短轮询result + // Compatible with short polling result. String oldResult = MD5Util.compareMd5OldResult(changedGroups); String newResult = MD5Util.compareMd5ResultString(changedGroups); @@ -88,9 +94,7 @@ public String doPollingConfig(HttpServletRequest request, HttpServletResponse re } int versionNum = Protocol.getVersionNumber(version); - /** - * 2.0.4版本以前, 返回值放入header中 - */ + // Befor 2.0.4 version, return value is put into header. if (versionNum < START_LONG_POLLING_VERSION_NUM) { response.addHeader(Constants.PROBE_MODIFY_RESPONSE, oldResult); response.addHeader(Constants.PROBE_MODIFY_RESPONSE_NEW, newResult); @@ -100,7 +104,7 @@ public String doPollingConfig(HttpServletRequest request, HttpServletResponse re Loggers.AUTH.info("new content:" + newResult); - // 禁用缓存 + // Disable cache. response.setHeader("Pragma", "no-cache"); response.setDateHeader("Expires", 0); response.setHeader("Cache-Control", "no-cache,no-store"); @@ -109,7 +113,7 @@ public String doPollingConfig(HttpServletRequest request, HttpServletResponse re } /** - * 同步配置获取接口 + * Execute to get config API. */ public String doGetConfig(HttpServletRequest request, HttpServletResponse response, String dataId, String group, String tenant, String tag, String clientIp) throws IOException, ServletException { @@ -176,7 +180,7 @@ public String doGetConfig(HttpServletRequest request, HttpServletResponse respon } if (configInfoBase == null && fileNotExist(file)) { // FIXME CacheItem - // 不存在了无法简单的计算推送delayed,这里简单的记做-1 + // No longer exists. It is impossible to simply calculate the push delayed. Here, simply record it as - 1. ConfigTraceService.logPullEvent(dataId, group, tenant, requestIpApp, -1, ConfigTraceService.PULL_EVENT_NOTFOUND, -1, requestIp); @@ -208,7 +212,7 @@ public String doGetConfig(HttpServletRequest request, HttpServletResponse respon } if (configInfoBase == null && fileNotExist(file)) { // FIXME CacheItem - // 不存在了无法简单的计算推送delayed,这里简单的记做-1 + // No longer exists. It is impossible to simply calculate the push delayed. Here, simply record it as - 1. ConfigTraceService.logPullEvent(dataId, group, tenant, requestIpApp, -1, ConfigTraceService.PULL_EVENT_NOTFOUND, -1, requestIp); @@ -224,9 +228,8 @@ public String doGetConfig(HttpServletRequest request, HttpServletResponse respon } response.setHeader(Constants.CONTENT_MD5, md5); - /** - * 禁用缓存 - */ + + // Disable cache. response.setHeader("Pragma", "no-cache"); response.setDateHeader("Expires", 0); response.setHeader("Cache-Control", "no-cache,no-store"); @@ -252,7 +255,7 @@ public String doGetConfig(HttpServletRequest request, HttpServletResponse respon final long delayed = System.currentTimeMillis() - lastModified; // TODO distinguish pull-get && push-get - // 否则无法直接把delayed作为推送延时的依据,因为主动get请求的delayed值都很大 + // Otherwise, delayed cannot be used as the basis of push delay directly, because the delayed value of active get requests is very large. ConfigTraceService.logPullEvent(dataId, group, tenant, requestIpApp, lastModified, ConfigTraceService.PULL_EVENT_OK, delayed, requestIp); @@ -264,7 +267,7 @@ public String doGetConfig(HttpServletRequest request, HttpServletResponse respon } } else if (lockResult == 0) { - // FIXME CacheItem 不存在了无法简单的计算推送delayed,这里简单的记做-1 + // FIXME CacheItem No longer exists. It is impossible to simply calculate the push delayed. Here, simply record it as - 1. ConfigTraceService .logPullEvent(dataId, group, tenant, requestIpApp, -1, ConfigTraceService.PULL_EVENT_NOTFOUND, -1, requestIp); @@ -291,35 +294,30 @@ private static void releaseConfigReadLock(String groupKey) { } private static int tryConfigReadLock(String groupKey) { - /** - * 默认加锁失败 - */ + + // Lock failed by default. int lockResult = -1; - /** - * 尝试加锁,最多10次 - */ + + // Try to get lock times, max value: 10; for (int i = TRY_GET_LOCK_TIMES; i >= 0; --i) { lockResult = ConfigCacheService.tryReadLock(groupKey); - /** - * 数据不存在 - */ + + // The data is non-existent. if (0 == lockResult) { break; } - /** - * success - */ + // Success if (lockResult > 0) { break; } - /** - * retry - */ + + // Retry. if (i > 0) { try { Thread.sleep(1); } catch (Exception e) { + LogUtil.pullCheckLog.error("An Exception occurred while thread sleep", e); } } } diff --git a/config/src/main/java/com/alibaba/nacos/config/server/controller/HealthController.java b/config/src/main/java/com/alibaba/nacos/config/server/controller/HealthController.java index da8bce23772..1be5375c08d 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/controller/HealthController.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/controller/HealthController.java @@ -29,7 +29,7 @@ import javax.annotation.PostConstruct; /** - * health service + * Health service. * * @author Nacos */ diff --git a/config/src/main/java/com/alibaba/nacos/config/server/controller/HistoryController.java b/config/src/main/java/com/alibaba/nacos/config/server/controller/HistoryController.java index 1052299f55e..13f4df9d4fa 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/controller/HistoryController.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/controller/HistoryController.java @@ -32,7 +32,7 @@ import javax.servlet.http.HttpServletResponse; /** - * 管理控制器。 + * History management controller. * * @author Nacos */ @@ -43,6 +43,18 @@ public class HistoryController { @Autowired protected PersistService persistService; + /** + * Query the list history config. + * + * @param dataId dataId string value. + * @param group group string value. + * @param tenant tenant string value. + * @param appName appName string value. + * @param pageNo pageNo string value. + * @param pageSize pageSize string value. + * @param modelMap modeMap. + * @return + */ @GetMapping(params = "search=accurate") public Page listConfigHistory(@RequestParam("dataId") String dataId, // @RequestParam("group") String group, // @@ -55,12 +67,12 @@ public Page listConfigHistory(@RequestParam("dataId") String pageNo = null == pageNo ? 1 : pageNo; pageSize = null == pageSize ? 100 : pageSize; pageSize = Math.min(500, pageSize); - // configInfoBase没有appName字段 + // configInfoBase has no appName field. return persistService.findConfigHistory(dataId, group, tenant, pageNo, pageSize); } /** - * 查看配置历史信息详情 + * Query the detailed configuration history informations. */ @GetMapping public ConfigHistoryInfo getConfigHistoryInfo(HttpServletRequest request, HttpServletResponse response, diff --git a/config/src/main/java/com/alibaba/nacos/config/server/controller/ListenerController.java b/config/src/main/java/com/alibaba/nacos/config/server/controller/ListenerController.java index 1c259d55c73..045ab4d5db4 100755 --- a/config/src/main/java/com/alibaba/nacos/config/server/controller/ListenerController.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/controller/ListenerController.java @@ -33,7 +33,7 @@ import java.util.Map; /** - * Config longpolling + * Config longpolling. * * @author Nacos */ @@ -49,7 +49,7 @@ public ListenerController(ConfigSubService configSubService) { } /** - * 获取客户端订阅配置信息 + * Get subscribe information from client side. */ @GetMapping public GroupkeyListenserStatus getAllSubClientConfigByIp(@RequestParam("ip") String ip, @@ -69,7 +69,7 @@ public GroupkeyListenserStatus getAllSubClientConfigByIp(@RequestParam("ip") Str configMd5Status.put(config.getKey(), config.getValue()); } } else { - // 默认值获取公共配置,如果想看所有配置,要加all + // Get common config default value, if want to get all config, you need to add "all". if (all) { configMd5Status.put(config.getKey(), config.getValue()); } else {