You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@seata.apache.org by ji...@apache.org on 2024/08/28 01:11:43 UTC
(incubator-seata) branch 2.x updated: optimize: rename the server naming/v1 api to vgroup/v1 (#6783)
This is an automated email from the ASF dual-hosted git repository.
jianbin pushed a commit to branch 2.x
in repository https://gitbox.apache.org/repos/asf/incubator-seata.git
The following commit(s) were added to refs/heads/2.x by this push:
new dadaa6bdcf optimize: rename the server naming/v1 api to vgroup/v1 (#6783)
dadaa6bdcf is described below
commit dadaa6bdcf994cb22370dee6e025ff0e2689ed80
Author: funkye <ji...@apache.org>
AuthorDate: Wed Aug 28 09:11:39 2024 +0800
optimize: rename the server naming/v1 api to vgroup/v1 (#6783)
---
changes/en-us/2.x.md | 1 +
changes/zh-cn/2.x.md | 1 +
.../apache/seata/common/NamingServerConstants.java | 4 ++--
.../NamingserverRegistryServiceImpl.java | 28 +++++-----------------
script/client/spring/application.properties | 1 +
server/pom.xml | 10 ++++----
...ontroller.java => VGroupMappingController.java} | 9 +++----
server/src/main/resources/application.yml | 2 +-
...rTest.java => VGroupMappingControllerTest.java} | 8 +++----
server/src/test/resources/application.properties | 5 +++-
10 files changed, 30 insertions(+), 39 deletions(-)
diff --git a/changes/en-us/2.x.md b/changes/en-us/2.x.md
index 4829e0974c..b55f7dc775 100644
--- a/changes/en-us/2.x.md
+++ b/changes/en-us/2.x.md
@@ -68,6 +68,7 @@ Add changes here for all PR submitted to the 2.x branch.
- [[#6780](https://github.com/apache/incubator-seata/pull/6780)] optimize the reflection operation in class `SerializerServiceLoader`
- [[#6784](https://github.com/apache/incubator-seata/pull/6784)] upgrade axios to 1.7.4
- [[#6787](https://github.com/apache/incubator-seata/pull/6787)] upgrade elliptic to 6.5.7
+- [[#6783](https://github.com/apache/incubator-seata/pull/6783)] rename the server naming/v1 api to vgroup/v1
### refactor:
diff --git a/changes/zh-cn/2.x.md b/changes/zh-cn/2.x.md
index 9f53d34f53..5850e95000 100644
--- a/changes/zh-cn/2.x.md
+++ b/changes/zh-cn/2.x.md
@@ -69,6 +69,7 @@
- [[#6780](https://github.com/apache/incubator-seata/pull/6780)] 优化类 `SerializerServiceLoader` 中的反射操作
- [[#6784](https://github.com/apache/incubator-seata/pull/6784)] 升级 axios 至 1.7.4 版本
- [[#6787](https://github.com/apache/incubator-seata/pull/6787)] 升级 elliptic 至 6.5.7 版本
+- [[#6783](https://github.com/apache/incubator-seata/pull/6783)] 将server事务分组修改接口改为/vgroup/v1
### refactor:
diff --git a/common/src/main/java/org/apache/seata/common/NamingServerConstants.java b/common/src/main/java/org/apache/seata/common/NamingServerConstants.java
index 975a42d3ee..11ba530cfd 100644
--- a/common/src/main/java/org/apache/seata/common/NamingServerConstants.java
+++ b/common/src/main/java/org/apache/seata/common/NamingServerConstants.java
@@ -25,7 +25,7 @@ public interface NamingServerConstants {
/**
* The constant HTTP_ADD_GROUP_SUFFIX
*/
- String HTTP_ADD_GROUP_SUFFIX = "/naming/v1/addVGroup?";
+ String HTTP_ADD_GROUP_SUFFIX = "/vgroup/v1/addVGroup?";
/**
* The constant CONSTANT_UNIT
@@ -40,7 +40,7 @@ public interface NamingServerConstants {
/**
* The constant HTTP_REMOVE_GROUP_SUFFIX
*/
- String HTTP_REMOVE_GROUP_SUFFIX = "/naming/v1/removeVGroup?";
+ String HTTP_REMOVE_GROUP_SUFFIX = "/vgroup/v1/removeVGroup?";
/**
* The constant IP_PORT_SPLIT_CHAR
diff --git a/discovery/seata-discovery-namingserver/src/main/java/org/apache/seata/discovery/registry/namingserver/NamingserverRegistryServiceImpl.java b/discovery/seata-discovery-namingserver/src/main/java/org/apache/seata/discovery/registry/namingserver/NamingserverRegistryServiceImpl.java
index ab78d48bbc..2781f4687b 100644
--- a/discovery/seata-discovery-namingserver/src/main/java/org/apache/seata/discovery/registry/namingserver/NamingserverRegistryServiceImpl.java
+++ b/discovery/seata-discovery-namingserver/src/main/java/org/apache/seata/discovery/registry/namingserver/NamingserverRegistryServiceImpl.java
@@ -29,7 +29,6 @@ import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.ThreadLocalRandom;
@@ -78,34 +77,31 @@ public class NamingserverRegistryServiceImpl implements RegistryService<NamingLi
private static final String TIME_OUT_KEY = "timeout";
private static final String HEART_BEAT_KEY = "heartbeat-period";
- private static int HEARTBEAT_PERIOD = 30 * 1000;
- private static final int HEALTHCHECK_PERIOD = 3 * 1000;
+ private static int healthcheckPeriod = 5 * 1000;
private static final int PULL_PERIOD = 30 * 1000;
private static final int LONG_POLL_TIME_OUT_PERIOD = 28 * 1000;
private static final int THREAD_POOL_NUM = 1;
private static final int HEALTH_CHECK_THRESHOLD = 1; // namingserver is considered unhealthy if failing in healthy check more than 1 times
private volatile long term = 0;
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
- private ScheduledFuture<?> heartBeatScheduledFuture;
private volatile boolean isSubscribed = false;
private static final Configuration FILE_CONFIG = ConfigurationFactory.CURRENT_FILE_INSTANCE;
private String namingServerAddressCache;
private static ConcurrentMap<String /* namingserver address */, AtomicInteger /* Number of Health Check Continues Failures */> AVAILABLE_NAMINGSERVER_MAP = new ConcurrentHashMap<>();
private static final ConcurrentMap<String/* vgroup */, List<InetSocketAddress>> VGROUP_ADDRESS_MAP = new ConcurrentHashMap<>();
private static final ConcurrentMap<String/* vgroup */, List<NamingListener>> LISTENER_SERVICE_MAP = new ConcurrentHashMap<>();
- protected final ScheduledExecutorService executorService = new ScheduledThreadPoolExecutor(1, new NamedThreadFactory("scheduledExcuter", THREAD_POOL_NUM, true));
+ protected final ScheduledExecutorService executorService = new ScheduledThreadPoolExecutor(1, new NamedThreadFactory("seata-namingser-scheduled", THREAD_POOL_NUM, true));
private final ExecutorService notifierExecutor = new ThreadPoolExecutor(THREAD_POOL_NUM, THREAD_POOL_NUM, Integer.MAX_VALUE, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(), new NamedThreadFactory("serviceNamingNotifier", THREAD_POOL_NUM));
private NamingserverRegistryServiceImpl() {
OBJECT_MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
String heartBeatKey = String.join(FILE_CONFIG_SPLIT_CHAR, FILE_ROOT_REGISTRY, REGISTRY_TYPE, HEART_BEAT_KEY);
- HEARTBEAT_PERIOD = FILE_CONFIG.getInt(heartBeatKey, HEARTBEAT_PERIOD);
+ healthcheckPeriod = FILE_CONFIG.getInt(heartBeatKey, healthcheckPeriod);
List<String> urlList = getNamingAddrs();
checkAvailableNamingAddr(urlList);
- this.executorService.scheduleAtFixedRate(() -> {
- checkAvailableNamingAddr(urlList);
- }, HEARTBEAT_PERIOD, HEALTHCHECK_PERIOD, TimeUnit.MILLISECONDS);
+ this.executorService.scheduleAtFixedRate(() -> checkAvailableNamingAddr(urlList), healthcheckPeriod,
+ healthcheckPeriod, TimeUnit.MILLISECONDS);
}
private void checkAvailableNamingAddr(List<String> urlList) {
@@ -154,14 +150,8 @@ public class NamingserverRegistryServiceImpl implements RegistryService<NamingLi
NetUtil.validAddress(address);
Instance instance = Instance.getInstance();
instance.setTransaction(new Node.Endpoint(address.getAddress().getHostAddress(), address.getPort(), "netty"));
-
instance.setTimestamp(System.currentTimeMillis());
doRegister(instance, getNamingAddrs());
-
- if (heartBeatScheduledFuture != null && !heartBeatScheduledFuture.isCancelled()) {
- heartBeatScheduledFuture.cancel(false);
- }
-
}
public void doRegister(Instance instance, List<String> urlList) {
@@ -209,11 +199,6 @@ public class NamingserverRegistryServiceImpl implements RegistryService<NamingLi
@Override
public void unregister(InetSocketAddress address) {
- // stop heartbeat
-
- if (heartBeatScheduledFuture != null && !heartBeatScheduledFuture.isCancelled()) {
- heartBeatScheduledFuture.cancel(true);
- }
NetUtil.validAddress(address);
Instance instance = Instance.getInstance();
instance.setTransaction(new Node.Endpoint(address.getAddress().getHostAddress(), address.getPort(), "netty"));
@@ -400,9 +385,8 @@ public class NamingserverRegistryServiceImpl implements RegistryService<NamingLi
term = metaResponse.getTerm();
}
VGROUP_ADDRESS_MAP.put(vGroup, newAddressList);
- removeOfflineAddressesIfNecessary(vGroup, newAddressList);
} catch (IOException e) {
- e.printStackTrace();
+ LOGGER.error(e.getMessage());
throw new RemoteException();
}
diff --git a/script/client/spring/application.properties b/script/client/spring/application.properties
index 1715c37362..e4c004afc0 100755
--- a/script/client/spring/application.properties
+++ b/script/client/spring/application.properties
@@ -133,6 +133,7 @@ seata.registry.etcd3.server-addr=http://localhost:2379
seata.registry.eureka.weight=1
seata.registry.eureka.service-url=http://localhost:8761/eureka
+
seata.registry.namingserver.server-addr=127.0.0.1:8081
seata.registry.namingserver.namespace=public
seata.registry.namingserver.heartbeat-period=5000
diff --git a/server/pom.xml b/server/pom.xml
index a9b6f05bd8..902095f26b 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -194,11 +194,11 @@
<artifactId>mysql-connector-java</artifactId>
<scope>test</scope>
</dependency>
-<!-- <dependency>-->
-<!-- <groupId>org.mariadb.jdbc</groupId>-->
-<!-- <artifactId>mariadb-java-client</artifactId>-->
-<!-- <scope>provided</scope>-->
-<!-- </dependency>-->
+<!-- <dependency>
+ <groupId>org.mariadb.jdbc</groupId>
+ <artifactId>mariadb-java-client</artifactId>
+ <scope>provided</scope>
+ </dependency>-->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
diff --git a/server/src/main/java/org/apache/seata/server/controller/NamingController.java b/server/src/main/java/org/apache/seata/server/controller/VGroupMappingController.java
similarity index 93%
rename from server/src/main/java/org/apache/seata/server/controller/NamingController.java
rename to server/src/main/java/org/apache/seata/server/controller/VGroupMappingController.java
index cd7a63074b..ae80858ff1 100644
--- a/server/src/main/java/org/apache/seata/server/controller/NamingController.java
+++ b/server/src/main/java/org/apache/seata/server/controller/VGroupMappingController.java
@@ -37,8 +37,8 @@ import static org.apache.seata.common.ConfigurationKeys.FILE_ROOT_TYPE;
import static org.apache.seata.common.ConfigurationKeys.NAMING_SERVER;
@RestController
-@RequestMapping("/naming/v1")
-public class NamingController {
+@RequestMapping("/vgroup/v1")
+public class VGroupMappingController {
private VGroupMappingStoreManager vGroupMappingStoreManager;
@@ -46,8 +46,9 @@ public class NamingController {
@PostConstruct
private void init() {
- if (StringUtils.equals(ConfigurationFactory.getInstance().getConfig(FILE_ROOT_REGISTRY
- + FILE_CONFIG_SPLIT_CHAR + FILE_ROOT_TYPE), NAMING_SERVER)) {
+ String type =
+ ConfigurationFactory.getInstance().getConfig(FILE_ROOT_REGISTRY + FILE_CONFIG_SPLIT_CHAR + FILE_ROOT_TYPE);
+ if (StringUtils.equals(type, NAMING_SERVER)) {
vGroupMappingStoreManager = SessionHolder.getRootVGroupMappingManager();
}
}
diff --git a/server/src/main/resources/application.yml b/server/src/main/resources/application.yml
index c70a2f842f..c1cf43c79e 100644
--- a/server/src/main/resources/application.yml
+++ b/server/src/main/resources/application.yml
@@ -53,4 +53,4 @@ seata:
secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017
tokenValidityInMilliseconds: 1800000
ignore:
- urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.jpeg,/**/*.ico,/api/v1/auth/login,/version.json,/health,/error
\ No newline at end of file
+ urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.jpeg,/**/*.ico,/api/v1/auth/login,/version.json,/health,/error,/vgroup/v1/**
\ No newline at end of file
diff --git a/server/src/test/java/org/apache/seata/server/controller/NamingControllerTest.java b/server/src/test/java/org/apache/seata/server/controller/VGroupMappingControllerTest.java
similarity index 84%
rename from server/src/test/java/org/apache/seata/server/controller/NamingControllerTest.java
rename to server/src/test/java/org/apache/seata/server/controller/VGroupMappingControllerTest.java
index 8ea8997aae..b085e529c3 100644
--- a/server/src/test/java/org/apache/seata/server/controller/NamingControllerTest.java
+++ b/server/src/test/java/org/apache/seata/server/controller/VGroupMappingControllerTest.java
@@ -24,17 +24,17 @@ import org.springframework.boot.test.context.SpringBootTest;
@Disabled
@SpringBootTest
-class NamingControllerTest {
+class VGroupMappingControllerTest {
@Autowired
- private NamingController namingController;
+ private VGroupMappingController vGroupMappingController;
@Test
void addVGroup() {
- namingController.addVGroup("group1","unit1");
+ vGroupMappingController.addVGroup("group1","unit1");
}
@Test
void removeVGroup() {
- namingController.removeVGroup("group1");
+ vGroupMappingController.removeVGroup("group1");
}
}
\ No newline at end of file
diff --git a/server/src/test/resources/application.properties b/server/src/test/resources/application.properties
index 7e94fbef63..5d100e7e8c 100644
--- a/server/src/test/resources/application.properties
+++ b/server/src/test/resources/application.properties
@@ -21,4 +21,7 @@ seata.metrics.enabled=true
seata.metrics.exporter-list=prometheus
seata.metrics.exporter-prometheus-port=9898
seata.metrics.registry-type=compact
-seata.server.service-port=8091
\ No newline at end of file
+seata.server.service-port=8091
+seata.registry.namingserver.server-addr=127.0.0.1:8081
+seata.registry.namingserver.namespace=public
+seata.registry.namingserver.heartbeat-period=5000
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For additional commands, e-mail: notifications-help@seata.apache.org