This is an automated email from the ASF dual-hosted git repository.
mikexue pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/eventmesh.git
The following commit(s) were added to refs/heads/master by this push:
new 4d561b814 [ISSUE #4431]Support update subscription data for
http/tcp/grpc protocol to meta storage (#4432)
4d561b814 is described below
commit 4d561b814078fa58e3479e8510292104df234b30
Author: mike_xwm <[email protected]>
AuthorDate: Thu Sep 7 10:06:10 2023 +0800
[ISSUE #4431]Support update subscription data for http/tcp/grpc protocol to
meta storage (#4432)
* update meta service
* [ISSUE #4373] Support nacos as meta storage
* [ISSUE #4372] Support etcd as Meta storage
* [ISSUE #4431] Support update subscription data for http/tcp/grpc protocol
to meta storage
* fix checkstyle error
* fix checkstyle error
* fix checkstyle error
---
.../common/config/CommonConfiguration.java | 39 +++++----
.../src/test/resources/configuration.properties | 6 +-
.../org/apache/eventmesh/api/meta/MetaService.java | 6 ++
.../api/meta/config/EventMeshMetaConfig.java | 24 ++++++
.../meta/consul/service/ConsulMetaService.java | 21 ++++-
.../src/test/java/ConsulMetaServiceTest.java | 2 +-
.../meta/etcd/service/EtcdMetaService.java | 30 ++++++-
.../registry/etcd/service/EtcdMetaServiceTest.java | 2 +-
...ion.java => NacosMetaStorageConfiguration.java} | 4 +-
.../meta/nacos/service/NacosMetaService.java | 93 +++++++++++++++++-----
.../nacos/service/NacosMetaServiceTest.java | 4 +-
.../zookeeper/service/ZookeeperMetaService.java | 21 ++++-
.../service/ZookeeperMetaServiceTest.java | 2 +-
.../admin/handler/ConfigurationHandler.java | 2 +-
.../runtime/boot/EventMeshGrpcServer.java | 2 +-
.../runtime/boot/EventMeshHTTPServer.java | 4 +-
.../eventmesh/runtime/boot/EventMeshTCPServer.java | 2 +-
.../runtime/core/consumer/SubscriptionManager.java | 55 +++++++++++++
.../protocol/grpc/consumer/EventMeshConsumer.java | 65 ++++++++++++++-
.../consumer/consumergroup/StreamTopicConfig.java | 4 +
.../processor/LocalSubscribeEventProcessor.java | 2 +-
.../processor/LocalUnSubscribeEventProcessor.java | 2 +-
.../http/processor/SubscribeProcessor.java | 1 +
.../http/processor/UnSubscribeProcessor.java | 1 +
.../http/processor/inf/AbstractEventProcessor.java | 50 +-----------
.../tcp/client/group/ClientGroupWrapper.java | 3 +-
.../client/group/ClientSessionGroupMapping.java | 50 ++++++++++++
.../tcp/client/processor/HelloProcessor.java | 2 +-
.../tcp/client/processor/SubscribeProcessor.java | 4 +-
.../client/rebalance/EventMeshRebalanceImpl.java | 4 +-
.../client/recommend/EventMeshRecommendImpl.java | 4 +-
.../apache/eventmesh/runtime/meta/MetaStorage.java | 4 +
.../src/test/resources/configuration.properties | 13 +--
33 files changed, 397 insertions(+), 131 deletions(-)
diff --git
a/eventmesh-common/src/main/java/org/apache/eventmesh/common/config/CommonConfiguration.java
b/eventmesh-common/src/main/java/org/apache/eventmesh/common/config/CommonConfiguration.java
index 664fd2121..350e8c733 100644
---
a/eventmesh-common/src/main/java/org/apache/eventmesh/common/config/CommonConfiguration.java
+++
b/eventmesh-common/src/main/java/org/apache/eventmesh/common/config/CommonConfiguration.java
@@ -53,9 +53,26 @@ public class CommonConfiguration {
@ConfigFiled(field = "server.hostIp", reload = true)
private String eventMeshServerIp = null;
- @ConfigFiled(field = "registry.plugin.server-addr", notEmpty = true)
- private String namesrvAddr = "";
+ @ConfigFiled(field = "metaStorage.plugin.server-addr", notEmpty = true)
+ private String metaStorageAddr = "";
+ @ConfigFiled(field = "metaStorage.plugin.type", notEmpty = true)
+ private String eventMeshMetaStoragePluginType = "namesrv";
+
+ @ConfigFiled(field = "metaStorage.plugin.username")
+ private String eventMeshMetaStoragePluginUsername = "";
+
+ @ConfigFiled(field = "metaStorage.plugin.password")
+ private String eventMeshMetaStoragePluginPassword = "";
+
+ @ConfigFiled(field = "metaStorage.plugin.metaStorageIntervalInMills")
+ private Integer eventMeshMetaStorageIntervalInMills = 10 * 1000;
+
+ @ConfigFiled(field =
"metaStorage.plugin.fetchMetaStorageAddrIntervalInMills")
+ private Integer eventMeshFetchMetaStorageAddrInterval = 10 * 1000;
+
+ @ConfigFiled(field = "metaStorage.plugin.enabled")
+ private boolean eventMeshServerMetaStorageEnable = false;
@ConfigFiled(field = "trace.plugin", notEmpty = true)
private String eventMeshTracePluginType;
@@ -63,9 +80,6 @@ public class CommonConfiguration {
@ConfigFiled(field = "metrics.plugin", notEmpty = true)
private List<String> eventMeshMetricsPluginType;
- @ConfigFiled(field = "metaStorage.plugin.type", notEmpty = true)
- private String eventMeshMetaStoragePluginType = "namesrv";
-
@ConfigFiled(field = "security.plugin.type", notEmpty = true)
private String eventMeshSecurityPluginType = "security";
@@ -78,18 +92,6 @@ public class CommonConfiguration {
@ConfigFiled(field = "security.validation.type.token", notEmpty = true)
private boolean eventMeshSecurityValidateTypeToken = false;
- @ConfigFiled(field = "metaStorage.plugin.username")
- private String eventMeshMetaStoragePluginUsername = "";
-
- @ConfigFiled(field = "metaStorage.plugin.password")
- private String eventMeshMetaStoragePluginPassword = "";
-
- @ConfigFiled(field = "server.metaStorage.metaStorageIntervalInMills")
- private Integer eventMeshMetaStorageIntervalInMills = 10 * 1000;
-
- @ConfigFiled(field =
"server.metaStorage.fetchMetaStorageAddrIntervalInMills")
- private Integer eventMeshFetchMetaStorageAddrInterval = 10 * 1000;
-
@ConfigFiled(field = "server.trace.enabled")
private boolean eventMeshServerTraceEnable = false;
@@ -97,9 +99,6 @@ public class CommonConfiguration {
@ConfigFiled(field = "server.security.enabled")
private boolean eventMeshServerSecurityEnable = false;
- @ConfigFiled(field = "server.metaStorage.enabled")
- private boolean eventMeshServerMetaStorageEnable = false;
-
@ConfigFiled(field = "security.publickey")
private String eventMeshSecurityPublickey = "";
diff --git a/eventmesh-common/src/test/resources/configuration.properties
b/eventmesh-common/src/test/resources/configuration.properties
index 7266c8604..f80bb7db0 100644
--- a/eventmesh-common/src/test/resources/configuration.properties
+++ b/eventmesh-common/src/test/resources/configuration.properties
@@ -25,13 +25,13 @@ eventMesh.storage.plugin.type=storage-succeed!!!
eventMesh.security.plugin.type=security-succeed!!!
eventMesh.metaStorage.plugin.type=metaStorage-succeed!!!
eventMesh.trace.plugin=trace-succeed!!!
-eventMesh.server.metaStorage.metaStorageIntervalInMills=816
-eventMesh.server.metaStorage.fetchMetaStorageAddrIntervalInMills=1816
+eventMesh.metaStorage.plugin.metaStorageIntervalInMills=816
+eventMesh.metaStorage.plugin.fetchMetaStorageAddrIntervalInMills=1816
eventMesh.metrics.plugin=metrics-succeed1!!!,metrics-succeed2!!!,metrics-succeed3!!!
eventMesh.metaStorage.plugin.server-addr=server-addr-succeed1!!!
eventMesh.server.security.enabled=true
-eventMesh.server.metaStorage.enabled=true
+eventMesh.metaStorage.plugin.enabled=true
eventMesh.server.trace.enabled=true
eventMesh.server.provide.protocols=TCP,HTTP,GRPC
diff --git
a/eventmesh-meta/eventmesh-meta-api/src/main/java/org/apache/eventmesh/api/meta/MetaService.java
b/eventmesh-meta/eventmesh-meta-api/src/main/java/org/apache/eventmesh/api/meta/MetaService.java
index a659e6205..66c8a203f 100644
---
a/eventmesh-meta/eventmesh-meta-api/src/main/java/org/apache/eventmesh/api/meta/MetaService.java
+++
b/eventmesh-meta/eventmesh-meta-api/src/main/java/org/apache/eventmesh/api/meta/MetaService.java
@@ -54,6 +54,12 @@ public interface MetaService {
void registerMetadata(Map<String, String> metadataMap);
+ String getMetaData(String key);
+
+ void updateMetaData(Map<String, String> metadataMap);
+
+ void removeMetaData(String key);
+
boolean register(EventMeshRegisterInfo eventMeshRegisterInfo) throws
MetaException;
boolean unRegister(EventMeshUnRegisterInfo eventMeshUnRegisterInfo) throws
MetaException;
diff --git
a/eventmesh-meta/eventmesh-meta-api/src/main/java/org/apache/eventmesh/api/meta/config/EventMeshMetaConfig.java
b/eventmesh-meta/eventmesh-meta-api/src/main/java/org/apache/eventmesh/api/meta/config/EventMeshMetaConfig.java
new file mode 100644
index 000000000..d8ea8c8f8
--- /dev/null
+++
b/eventmesh-meta/eventmesh-meta-api/src/main/java/org/apache/eventmesh/api/meta/config/EventMeshMetaConfig.java
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.eventmesh.api.meta.config;
+
+public class EventMeshMetaConfig {
+
+ public static final String EVENT_MESH_PROTO = "protocol";
+
+}
diff --git
a/eventmesh-meta/eventmesh-meta-consul/src/main/java/org/apache/eventmesh/meta/consul/service/ConsulMetaService.java
b/eventmesh-meta/eventmesh-meta-consul/src/main/java/org/apache/eventmesh/meta/consul/service/ConsulMetaService.java
index 2e3dbba18..b2ba4564d 100644
---
a/eventmesh-meta/eventmesh-meta-consul/src/main/java/org/apache/eventmesh/meta/consul/service/ConsulMetaService.java
+++
b/eventmesh-meta/eventmesh-meta-consul/src/main/java/org/apache/eventmesh/meta/consul/service/ConsulMetaService.java
@@ -72,11 +72,11 @@ public class ConsulMetaService implements MetaService {
for (String key : ConfigurationContextUtil.KEYS) {
CommonConfiguration commonConfiguration =
ConfigurationContextUtil.get(key);
if (null != commonConfiguration) {
- String namesrvAddr = commonConfiguration.getNamesrvAddr();
- if (StringUtils.isBlank(namesrvAddr)) {
+ String metaStorageAddr =
commonConfiguration.getMetaStorageAddr();
+ if (StringUtils.isBlank(metaStorageAddr)) {
throw new MetaException("namesrvAddr cannot be null");
}
- String[] addr = namesrvAddr.split(":");
+ String[] addr = metaStorageAddr.split(":");
if (addr.length != 2) {
throw new MetaException("Illegal namesrvAddr");
}
@@ -190,4 +190,19 @@ public class ConsulMetaService implements MetaService {
public void registerMetadata(Map<String, String> metadataMap) {
}
+
+ @Override
+ public String getMetaData(String key) {
+ return null;
+ }
+
+ @Override
+ public void updateMetaData(Map<String, String> metadataMap) {
+
+ }
+
+ @Override
+ public void removeMetaData(String key) {
+
+ }
}
diff --git
a/eventmesh-meta/eventmesh-meta-consul/src/test/java/ConsulMetaServiceTest.java
b/eventmesh-meta/eventmesh-meta-consul/src/test/java/ConsulMetaServiceTest.java
index 9bfbe6631..bb34fdd4b 100644
---
a/eventmesh-meta/eventmesh-meta-consul/src/test/java/ConsulMetaServiceTest.java
+++
b/eventmesh-meta/eventmesh-meta-consul/src/test/java/ConsulMetaServiceTest.java
@@ -50,7 +50,7 @@ public class ConsulMetaServiceTest {
consulMetaService = new ConsulMetaService();
CommonConfiguration configuration = new CommonConfiguration();
ConfigurationContextUtil.putIfAbsent(ConfigurationContextUtil.HTTP,
configuration);
- configuration.setNamesrvAddr("127.0.0.1:8500");
+ configuration.setMetaStorageAddr("127.0.0.1:8500");
Mockito.when(eventMeshRegisterInfo.getEventMeshClusterName()).thenReturn("eventmesh");
Mockito.when(eventMeshRegisterInfo.getEventMeshName()).thenReturn("eventmesh");
Mockito.when(eventMeshRegisterInfo.getEndPoint()).thenReturn("127.0.0.1:8500");
diff --git
a/eventmesh-meta/eventmesh-meta-etcd/src/main/java/org/apache/eventmesh/meta/etcd/service/EtcdMetaService.java
b/eventmesh-meta/eventmesh-meta-etcd/src/main/java/org/apache/eventmesh/meta/etcd/service/EtcdMetaService.java
index 8e1d9af97..fae37e27c 100644
---
a/eventmesh-meta/eventmesh-meta-etcd/src/main/java/org/apache/eventmesh/meta/etcd/service/EtcdMetaService.java
+++
b/eventmesh-meta/eventmesh-meta-etcd/src/main/java/org/apache/eventmesh/meta/etcd/service/EtcdMetaService.java
@@ -26,6 +26,7 @@ import org.apache.eventmesh.common.Constants;
import org.apache.eventmesh.common.ThreadPoolFactory;
import org.apache.eventmesh.common.config.CommonConfiguration;
import org.apache.eventmesh.common.utils.ConfigurationContextUtil;
+import org.apache.eventmesh.common.utils.IPUtils;
import org.apache.eventmesh.common.utils.JsonUtils;
import org.apache.eventmesh.meta.etcd.constant.EtcdConstant;
import org.apache.eventmesh.meta.etcd.factory.EtcdClientFactory;
@@ -33,6 +34,7 @@ import
org.apache.eventmesh.meta.etcd.factory.EtcdClientFactory;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -70,6 +72,10 @@ public class EtcdMetaService implements MetaService {
private String password;
+ private String instanceIp;
+
+ private String group;
+
@Getter
private Client etcdClient;
@@ -89,12 +95,14 @@ public class EtcdMetaService implements MetaService {
if (null == commonConfiguration) {
continue;
}
- if (StringUtils.isBlank(commonConfiguration.getNamesrvAddr())) {
+ if (StringUtils.isBlank(commonConfiguration.getMetaStorageAddr()))
{
throw new MetaException("namesrvAddr cannot be null");
}
- this.serverAddr = commonConfiguration.getNamesrvAddr();
+ this.serverAddr = commonConfiguration.getMetaStorageAddr();
this.username =
commonConfiguration.getEventMeshMetaStoragePluginUsername();
this.password =
commonConfiguration.getEventMeshMetaStoragePluginPassword();
+ this.instanceIp = IPUtils.getLocalAddress();
+ this.group = commonConfiguration.getMeshGroup();
break;
}
etcdRegistryMonitorExecutorService =
ThreadPoolFactory.createSingleScheduledExecutor(
@@ -188,6 +196,24 @@ public class EtcdMetaService implements MetaService {
}
}
+ @Override
+ public String getMetaData(String key) {
+ return null;
+ }
+
+ @Override
+ public void updateMetaData(Map<String, String> metadataMap) {
+ String etcdMetaKey = instanceIp + "-" + group;
+ ByteSequence key = ByteSequence.from(etcdMetaKey,
StandardCharsets.UTF_8);
+ ByteSequence value =
ByteSequence.from(Objects.requireNonNull(JsonUtils.toJSONString(metadataMap)),
StandardCharsets.UTF_8);
+ etcdClient.getKVClient().put(key, value);
+ }
+
+ @Override
+ public void removeMetaData(String key) {
+
+ }
+
@Override
public boolean register(EventMeshRegisterInfo eventMeshRegisterInfo)
throws MetaException {
String eventMeshClusterName =
eventMeshRegisterInfo.getEventMeshClusterName();
diff --git
a/eventmesh-meta/eventmesh-meta-etcd/src/test/java/org/apache/eventmesh/registry/etcd/service/EtcdMetaServiceTest.java
b/eventmesh-meta/eventmesh-meta-etcd/src/test/java/org/apache/eventmesh/registry/etcd/service/EtcdMetaServiceTest.java
index 7a7da117a..9eef2c8b8 100644
---
a/eventmesh-meta/eventmesh-meta-etcd/src/test/java/org/apache/eventmesh/registry/etcd/service/EtcdMetaServiceTest.java
+++
b/eventmesh-meta/eventmesh-meta-etcd/src/test/java/org/apache/eventmesh/registry/etcd/service/EtcdMetaServiceTest.java
@@ -50,7 +50,7 @@ public class EtcdMetaServiceTest {
public void setUp() {
etcdMetaService = new EtcdMetaService();
CommonConfiguration configuration = new CommonConfiguration();
- configuration.setNamesrvAddr("127.0.0.1:2379");
+ configuration.setMetaStorageAddr("127.0.0.1:2379");
ConfigurationContextUtil.putIfAbsent(ConfigurationContextUtil.HTTP,
configuration);
//
Mockito.when(eventMeshRegisterInfo.getEventMeshClusterName()).thenReturn("eventmesh");
diff --git
a/eventmesh-meta/eventmesh-meta-nacos/src/main/java/org/apache/eventmesh/meta/nacos/config/NacosRegistryConfiguration.java
b/eventmesh-meta/eventmesh-meta-nacos/src/main/java/org/apache/eventmesh/meta/nacos/config/NacosMetaStorageConfiguration.java
similarity index 95%
rename from
eventmesh-meta/eventmesh-meta-nacos/src/main/java/org/apache/eventmesh/meta/nacos/config/NacosRegistryConfiguration.java
rename to
eventmesh-meta/eventmesh-meta-nacos/src/main/java/org/apache/eventmesh/meta/nacos/config/NacosMetaStorageConfiguration.java
index 0f72ede9b..67e51d2d9 100644
---
a/eventmesh-meta/eventmesh-meta-nacos/src/main/java/org/apache/eventmesh/meta/nacos/config/NacosRegistryConfiguration.java
+++
b/eventmesh-meta/eventmesh-meta-nacos/src/main/java/org/apache/eventmesh/meta/nacos/config/NacosMetaStorageConfiguration.java
@@ -28,8 +28,8 @@ import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
-@Config(prefix = "eventMesh.registry.nacos")
-public class NacosRegistryConfiguration {
+@Config(prefix = "eventMesh.metaStorage.nacos")
+public class NacosMetaStorageConfiguration {
@ConfigFiled(field = PropertyKeyConst.ENDPOINT)
private String endpoint;
diff --git
a/eventmesh-meta/eventmesh-meta-nacos/src/main/java/org/apache/eventmesh/meta/nacos/service/NacosMetaService.java
b/eventmesh-meta/eventmesh-meta-nacos/src/main/java/org/apache/eventmesh/meta/nacos/service/NacosMetaService.java
index b64d5ccca..8d0a61fc9 100644
---
a/eventmesh-meta/eventmesh-meta-nacos/src/main/java/org/apache/eventmesh/meta/nacos/service/NacosMetaService.java
+++
b/eventmesh-meta/eventmesh-meta-nacos/src/main/java/org/apache/eventmesh/meta/nacos/service/NacosMetaService.java
@@ -19,13 +19,15 @@ package org.apache.eventmesh.meta.nacos.service;
import org.apache.eventmesh.api.exception.MetaException;
import org.apache.eventmesh.api.meta.MetaService;
+import org.apache.eventmesh.api.meta.config.EventMeshMetaConfig;
import org.apache.eventmesh.api.meta.dto.EventMeshDataInfo;
import org.apache.eventmesh.api.meta.dto.EventMeshRegisterInfo;
import org.apache.eventmesh.api.meta.dto.EventMeshUnRegisterInfo;
import org.apache.eventmesh.common.config.CommonConfiguration;
import org.apache.eventmesh.common.config.ConfigService;
import org.apache.eventmesh.common.utils.ConfigurationContextUtil;
-import org.apache.eventmesh.meta.nacos.config.NacosRegistryConfiguration;
+import org.apache.eventmesh.common.utils.IPUtils;
+import org.apache.eventmesh.meta.nacos.config.NacosMetaStorageConfiguration;
import org.apache.eventmesh.meta.nacos.constant.NacosConstant;
import org.apache.commons.lang3.StringUtils;
@@ -48,6 +50,7 @@ import com.alibaba.nacos.api.naming.NamingService;
import com.alibaba.nacos.api.naming.pojo.Instance;
import com.alibaba.nacos.client.naming.utils.UtilAndComs;
import com.alibaba.nacos.common.utils.CollectionUtils;
+import com.alibaba.nacos.common.utils.JacksonUtils;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
@@ -55,9 +58,9 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j
public class NacosMetaService implements MetaService {
- private final AtomicBoolean initStatus = new AtomicBoolean(false);
+ private final AtomicBoolean initStatus = new AtomicBoolean(false);
- private final AtomicBoolean startStatus = new AtomicBoolean(false);
+ private final AtomicBoolean startStatus = new AtomicBoolean(false);
@Getter
private String serverAddr;
@@ -69,10 +72,16 @@ public class NacosMetaService implements MetaService {
private String password;
@Getter
- private NacosRegistryConfiguration nacosConfig;
+ private NacosMetaStorageConfiguration nacosConfig;
+
+ private String dataId;
+
+ private String group;
@Getter
- private NamingService namingService;
+ private NamingService nacosNamingService;
+
+ private com.alibaba.nacos.api.config.ConfigService nacosConfigService;
private ConcurrentMap<String, EventMeshRegisterInfo>
eventMeshRegisterInfoMap;
@@ -88,17 +97,19 @@ public class NacosMetaService implements MetaService {
if (null == commonConfiguration) {
continue;
}
- if (StringUtils.isBlank(commonConfiguration.getNamesrvAddr())) {
+ if (StringUtils.isBlank(commonConfiguration.getMetaStorageAddr()))
{
throw new MetaException("namesrvAddr cannot be null");
}
- this.serverAddr = commonConfiguration.getNamesrvAddr();
+ this.serverAddr = commonConfiguration.getMetaStorageAddr();
this.username =
commonConfiguration.getEventMeshMetaStoragePluginUsername();
this.password =
commonConfiguration.getEventMeshMetaStoragePluginPassword();
+ this.dataId = IPUtils.getLocalAddress();
+ this.group = commonConfiguration.getMeshGroup();
break;
}
ConfigService configService = ConfigService.getInstance();
- NacosRegistryConfiguration nacosConfig =
configService.buildConfigInstance(NacosRegistryConfiguration.class);
+ NacosMetaStorageConfiguration nacosConfig =
configService.buildConfigInstance(NacosMetaStorageConfiguration.class);
if (nacosConfig != null) {
this.nacosConfig = nacosConfig;
}
@@ -110,13 +121,21 @@ public class NacosMetaService implements MetaService {
if (!startStatus.compareAndSet(false, true)) {
return;
}
+ Properties properties = buildProperties();
+ // registry
try {
- Properties properties = buildProperties();
- namingService = NacosFactory.createNamingService(properties);
+ this.nacosNamingService =
NacosFactory.createNamingService(properties);
} catch (NacosException e) {
log.error("[NacosRegistryService][start] error", e);
throw new MetaException(e.getMessage());
}
+ // config
+ try {
+ this.nacosConfigService =
NacosFactory.createConfigService(properties);
+ } catch (NacosException e) {
+ log.error("[NacosConfigService][start] error", e);
+ throw new MetaException(e.getMessage());
+ }
}
private Properties buildProperties() {
@@ -163,7 +182,7 @@ public class NacosMetaService implements MetaService {
return;
}
try {
- namingService.shutDown();
+ nacosNamingService.shutDown();
} catch (NacosException e) {
log.error("[NacosRegistryService][shutdown] error", e);
throw new MetaException(e.getMessage());
@@ -191,18 +210,18 @@ public class NacosMetaService implements MetaService {
String eventMeshName = configuration.getEventMeshName();
try {
List<Instance> instances =
- namingService.selectInstances(eventMeshName + "-" +
key,
- key + "-" + (inCluster ?
configuration.getEventMeshCluster() : NacosConstant.GROUP),
- clusters,
- true);
+ nacosNamingService.selectInstances(eventMeshName + "-" +
key,
+ key + "-" + (inCluster ?
configuration.getEventMeshCluster() : NacosConstant.GROUP),
+ clusters,
+ true);
if (CollectionUtils.isEmpty(instances)) {
continue;
}
for (Instance instance : instances) {
EventMeshDataInfo eventMeshDataInfo =
- new EventMeshDataInfo(instance.getClusterName(),
instance.getServiceName(),
- instance.getIp() + ":"
- + instance.getPort(), 0L,
instance.getMetadata());
+ new EventMeshDataInfo(instance.getClusterName(),
instance.getServiceName(),
+ instance.getIp() + ":"
+ + instance.getPort(), 0L,
instance.getMetadata());
eventMeshDataInfoList.add(eventMeshDataInfo);
}
} catch (NacosException e) {
@@ -222,11 +241,43 @@ public class NacosMetaService implements MetaService {
}
}
+ @Override
+ public String getMetaData(String key) {
+ try {
+ return this.nacosConfigService.getConfig(key, group, 5000L);
+ } catch (NacosException e) {
+ log.error("get metaData fail", e);
+ throw new RuntimeException(e);
+ }
+ }
+
+ @Override
+ public void updateMetaData(Map<String, String> metadataMap) {
+ String protocol =
metadataMap.get(EventMeshMetaConfig.EVENT_MESH_PROTO);
+ String nacosDataId = dataId + "-" + protocol;
+ try {
+ boolean flag = this.nacosConfigService.publishConfig(nacosDataId,
group, JacksonUtils.toJson(metadataMap));
+ if (flag) {
+ log.info("publish metaData {} success", metadataMap);
+ } else {
+ log.error("publish metaData {} fail", metadataMap);
+ }
+ } catch (NacosException e) {
+ log.error("failed to publish data to nacos", e);
+ throw new RuntimeException(e);
+ }
+ }
+
+ @Override
+ public void removeMetaData(String key) {
+
+ }
+
@Override
public boolean register(EventMeshRegisterInfo eventMeshRegisterInfo)
throws MetaException {
try {
String[] ipPort =
eventMeshRegisterInfo.getEndPoint().split(NacosConstant.IP_PORT_SEPARATOR);
- if (ipPort == null || ipPort.length < 2) {
+ if (ipPort.length < 2) {
return false;
}
String eventMeshClusterName =
eventMeshRegisterInfo.getEventMeshClusterName();
@@ -240,7 +291,7 @@ public class NacosMetaService implements MetaService {
instance.setMetadata(metadata);
String eventMeshName = eventMeshRegisterInfo.getEventMeshName();
- namingService.registerInstance(eventMeshName,
eventMeshRegisterInfo.getProtocolType() + "-"
+ nacosNamingService.registerInstance(eventMeshName,
eventMeshRegisterInfo.getProtocolType() + "-"
+ NacosConstant.GROUP, instance);
eventMeshRegisterInfoMap.put(eventMeshName, eventMeshRegisterInfo);
} catch (NacosException e) {
@@ -261,7 +312,7 @@ public class NacosMetaService implements MetaService {
String eventMeshName = eventMeshUnRegisterInfo.getEventMeshName();
String eventMeshClusterName =
eventMeshUnRegisterInfo.getEventMeshClusterName();
instance.setClusterName(eventMeshClusterName);
- namingService.deregisterInstance(eventMeshName,
eventMeshUnRegisterInfo.getProtocolType()
+ nacosNamingService.deregisterInstance(eventMeshName,
eventMeshUnRegisterInfo.getProtocolType()
+ "-" + NacosConstant.GROUP, instance);
eventMeshRegisterInfoMap.remove(eventMeshName);
} catch (NacosException e) {
diff --git
a/eventmesh-meta/eventmesh-meta-nacos/src/test/java/org/apache/eventmesh/registry/nacos/service/NacosMetaServiceTest.java
b/eventmesh-meta/eventmesh-meta-nacos/src/test/java/org/apache/eventmesh/registry/nacos/service/NacosMetaServiceTest.java
index 778ffaccb..7ec238da2 100644
---
a/eventmesh-meta/eventmesh-meta-nacos/src/test/java/org/apache/eventmesh/registry/nacos/service/NacosMetaServiceTest.java
+++
b/eventmesh-meta/eventmesh-meta-nacos/src/test/java/org/apache/eventmesh/registry/nacos/service/NacosMetaServiceTest.java
@@ -49,7 +49,7 @@ public class NacosMetaServiceTest {
public void setUp() {
nacosMetaService = new NacosMetaService();
CommonConfiguration configuration = new CommonConfiguration();
- configuration.setNamesrvAddr("127.0.0.1");
+ configuration.setMetaStorageAddr("127.0.0.1");
configuration.setEventMeshMetaStoragePluginPassword("nacos");
configuration.setEventMeshMetaStoragePluginUsername("nacos");
ConfigurationContextUtil.putIfAbsent(ConfigurationContextUtil.HTTP,
configuration);
@@ -80,7 +80,7 @@ public class NacosMetaServiceTest {
public void testStart() {
nacosMetaService.init();
nacosMetaService.start();
- Assert.assertNotNull(nacosMetaService.getNamingService());
+ Assert.assertNotNull(nacosMetaService.getNacosNamingService());
}
diff --git
a/eventmesh-meta/eventmesh-meta-zookeeper/src/main/java/org/apache/eventmesh/meta/zookeeper/service/ZookeeperMetaService.java
b/eventmesh-meta/eventmesh-meta-zookeeper/src/main/java/org/apache/eventmesh/meta/zookeeper/service/ZookeeperMetaService.java
index 701a6a918..a5f57f10f 100644
---
a/eventmesh-meta/eventmesh-meta-zookeeper/src/main/java/org/apache/eventmesh/meta/zookeeper/service/ZookeeperMetaService.java
+++
b/eventmesh-meta/eventmesh-meta-zookeeper/src/main/java/org/apache/eventmesh/meta/zookeeper/service/ZookeeperMetaService.java
@@ -88,10 +88,10 @@ public class ZookeeperMetaService implements MetaService {
if (null == commonConfiguration) {
continue;
}
- if (StringUtils.isBlank(commonConfiguration.getNamesrvAddr())) {
- throw new MetaException("namesrvAddr cannot be null");
+ if (StringUtils.isBlank(commonConfiguration.getMetaStorageAddr()))
{
+ throw new MetaException("meta storage address cannot be null");
}
- this.serverAddr = commonConfiguration.getNamesrvAddr();
+ this.serverAddr = commonConfiguration.getMetaStorageAddr();
break;
}
ZKRegistryConfiguration zkConfig =
ConfigService.getInstance().buildConfigInstance(ZKRegistryConfiguration.class);
@@ -288,6 +288,21 @@ public class ZookeeperMetaService implements MetaService {
}
}
+ @Override
+ public String getMetaData(String key) {
+ return null;
+ }
+
+ @Override
+ public void updateMetaData(Map<String, String> metadataMap) {
+
+ }
+
+ @Override
+ public void removeMetaData(String key) {
+
+ }
+
@Override
public boolean register(EventMeshRegisterInfo eventMeshRegisterInfo)
throws MetaException {
try {
diff --git
a/eventmesh-meta/eventmesh-meta-zookeeper/src/test/java/org/apache/eventmesh/registry/zookeeper/service/ZookeeperMetaServiceTest.java
b/eventmesh-meta/eventmesh-meta-zookeeper/src/test/java/org/apache/eventmesh/registry/zookeeper/service/ZookeeperMetaServiceTest.java
index ede35a75e..ae03a5685 100644
---
a/eventmesh-meta/eventmesh-meta-zookeeper/src/test/java/org/apache/eventmesh/registry/zookeeper/service/ZookeeperMetaServiceTest.java
+++
b/eventmesh-meta/eventmesh-meta-zookeeper/src/test/java/org/apache/eventmesh/registry/zookeeper/service/ZookeeperMetaServiceTest.java
@@ -61,7 +61,7 @@ public class ZookeeperMetaServiceTest {
zkRegistryService = new ZookeeperMetaService();
CommonConfiguration configuration = new CommonConfiguration();
- configuration.setNamesrvAddr("127.0.0.1:1500");
+ configuration.setMetaStorageAddr("127.0.0.1:1500");
configuration.setEventMeshName("eventmesh");
ConfigurationContextUtil.putIfAbsent(ConfigurationContextUtil.HTTP,
configuration);
diff --git
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/ConfigurationHandler.java
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/ConfigurationHandler.java
index 11220de40..b188440c3 100644
---
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/ConfigurationHandler.java
+++
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/ConfigurationHandler.java
@@ -113,7 +113,7 @@ public class ConfigurationHandler extends
AbstractHttpHandler {
try {
GetConfigurationResponse getConfigurationResponse = new
GetConfigurationResponse(
eventMeshTCPConfiguration.getSysID(),
- eventMeshTCPConfiguration.getNamesrvAddr(),
+ eventMeshTCPConfiguration.getMetaStorageAddr(),
eventMeshTCPConfiguration.getEventMeshEnv(),
eventMeshTCPConfiguration.getEventMeshIDC(),
eventMeshTCPConfiguration.getEventMeshCluster(),
diff --git
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/EventMeshGrpcServer.java
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/EventMeshGrpcServer.java
index 66aac273a..5cc63f367 100644
---
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/EventMeshGrpcServer.java
+++
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/EventMeshGrpcServer.java
@@ -314,7 +314,7 @@ public class EventMeshGrpcServer {
}
}
- public MetaStorage getRegistry() {
+ public MetaStorage getMetaStorage() {
return metaStorage;
}
diff --git
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/EventMeshHTTPServer.java
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/EventMeshHTTPServer.java
index b77699928..4b583c387 100644
---
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/EventMeshHTTPServer.java
+++
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/EventMeshHTTPServer.java
@@ -128,7 +128,7 @@ public class EventMeshHTTPServer extends AbstractHTTPServer
{
httpRetryer.init();
super.setMetrics(new HTTPMetricsServer(this, metricsRegistries));
- subscriptionManager = new SubscriptionManager();
+ subscriptionManager = new
SubscriptionManager(eventMeshHttpConfiguration.isEventMeshServerMetaStorageEnable(),
metaStorage);
consumerManager = new ConsumerManager(this);
consumerManager.init();
@@ -349,7 +349,7 @@ public class EventMeshHTTPServer extends AbstractHTTPServer
{
return batchRateLimiter;
}
- public MetaStorage getRegistry() {
+ public MetaStorage getMetaStorage() {
return metaStorage;
}
diff --git
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/EventMeshTCPServer.java
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/EventMeshTCPServer.java
index d5d563940..25319f268 100644
---
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/EventMeshTCPServer.java
+++
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/EventMeshTCPServer.java
@@ -258,7 +258,7 @@ public class EventMeshTCPServer extends AbstractTCPServer {
return eventMeshTCPConfiguration;
}
- public MetaStorage getRegistry() {
+ public MetaStorage getMetaStorage() {
return metaStorage;
}
diff --git
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/consumer/SubscriptionManager.java
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/consumer/SubscriptionManager.java
index 37ac2719e..ab5272e9d 100644
---
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/consumer/SubscriptionManager.java
+++
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/consumer/SubscriptionManager.java
@@ -17,17 +17,24 @@
package org.apache.eventmesh.runtime.core.consumer;
+import org.apache.eventmesh.api.meta.config.EventMeshMetaConfig;
import org.apache.eventmesh.common.protocol.SubscriptionItem;
+import org.apache.eventmesh.common.utils.JsonUtils;
import org.apache.eventmesh.runtime.core.consumergroup.ConsumerGroupConf;
+import org.apache.eventmesh.runtime.core.consumergroup.ConsumerGroupMetadata;
import org.apache.eventmesh.runtime.core.consumergroup.ConsumerGroupTopicConf;
+import
org.apache.eventmesh.runtime.core.consumergroup.ConsumerGroupTopicMetadata;
import org.apache.eventmesh.runtime.core.protocol.http.processor.inf.Client;
+import org.apache.eventmesh.runtime.meta.MetaStorage;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.Date;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -36,10 +43,19 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j
public class SubscriptionManager {
+ private final boolean isEventMeshServerMetaStorageEnable;
+
+ private final MetaStorage metaStorage;
+
private final ConcurrentHashMap<String /**group*/, ConsumerGroupConf>
localConsumerGroupMapping = new ConcurrentHashMap<>(64);
private final ConcurrentHashMap<String /**group@topic*/, List<Client>>
localClientInfoMapping = new ConcurrentHashMap<>(64);
+ public SubscriptionManager(boolean isEventMeshServerMetaStorageEnable,
MetaStorage metaStorage) {
+ this.isEventMeshServerMetaStorageEnable =
isEventMeshServerMetaStorageEnable;
+ this.metaStorage = metaStorage;
+ }
+
public ConcurrentHashMap<String, ConsumerGroupConf>
getLocalConsumerGroupMapping() {
return localConsumerGroupMapping;
}
@@ -128,4 +144,43 @@ public class SubscriptionManager {
consumerGroupTopicConf.getIdcUrls().get(clientInfo.getIdc()).add(url);
}
}
+
+ public void updateMetaData() {
+ if (!isEventMeshServerMetaStorageEnable) {
+ return;
+ }
+ try {
+ Map<String, String> metadata = new HashMap<>(1 << 4);
+ for (Map.Entry<String, ConsumerGroupConf> consumerGroupMap :
getLocalConsumerGroupMapping().entrySet()) {
+ String consumerGroupKey = consumerGroupMap.getKey();
+ ConsumerGroupConf consumerGroupConf =
consumerGroupMap.getValue();
+
+ ConsumerGroupMetadata consumerGroupMetadata = new
ConsumerGroupMetadata();
+ consumerGroupMetadata.setConsumerGroup(consumerGroupKey);
+
+ Map<String, ConsumerGroupTopicMetadata>
consumerGroupTopicMetadataMap =
+ new HashMap<>(1 << 4);
+ for (Map.Entry<String, ConsumerGroupTopicConf>
consumerGroupTopicConfEntry :
+ consumerGroupConf.getConsumerGroupTopicConf().entrySet()) {
+ final String topic = consumerGroupTopicConfEntry.getKey();
+ ConsumerGroupTopicConf consumerGroupTopicConf =
consumerGroupTopicConfEntry.getValue();
+ ConsumerGroupTopicMetadata consumerGroupTopicMetadata =
new ConsumerGroupTopicMetadata();
+
consumerGroupTopicMetadata.setConsumerGroup(consumerGroupTopicConf.getConsumerGroup());
+
consumerGroupTopicMetadata.setTopic(consumerGroupTopicConf.getTopic());
+
consumerGroupTopicMetadata.setUrls(consumerGroupTopicConf.getUrls());
+
+ consumerGroupTopicMetadataMap.put(topic,
consumerGroupTopicMetadata);
+ }
+
+
consumerGroupMetadata.setConsumerGroupTopicMetadataMap(consumerGroupTopicMetadataMap);
+ metadata.put(consumerGroupKey,
JsonUtils.toJSONString(consumerGroupMetadata));
+ }
+ metadata.put(EventMeshMetaConfig.EVENT_MESH_PROTO, "http");
+
+ metaStorage.updateMetaData(metadata);
+
+ } catch (Exception e) {
+ log.error("update eventmesh metadata error", e);
+ }
+ }
}
diff --git
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/consumer/EventMeshConsumer.java
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/consumer/EventMeshConsumer.java
index fa5929a8b..9496a8913 100644
---
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/consumer/EventMeshConsumer.java
+++
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/consumer/EventMeshConsumer.java
@@ -29,17 +29,24 @@ import
org.apache.eventmesh.api.EventMeshAsyncConsumeContext;
import org.apache.eventmesh.api.SendCallback;
import org.apache.eventmesh.api.SendResult;
import org.apache.eventmesh.api.exception.OnExceptionContext;
+import org.apache.eventmesh.api.meta.config.EventMeshMetaConfig;
import org.apache.eventmesh.common.Constants;
import org.apache.eventmesh.common.protocol.SubscriptionItem;
import org.apache.eventmesh.common.protocol.SubscriptionMode;
+import org.apache.eventmesh.common.utils.JsonUtils;
import org.apache.eventmesh.common.utils.ThreadUtils;
import org.apache.eventmesh.runtime.boot.EventMeshGrpcServer;
import org.apache.eventmesh.runtime.common.ServiceState;
import org.apache.eventmesh.runtime.configuration.EventMeshGrpcConfiguration;
import org.apache.eventmesh.runtime.constants.EventMeshConstants;
+import org.apache.eventmesh.runtime.core.consumergroup.ConsumerGroupMetadata;
+import
org.apache.eventmesh.runtime.core.consumergroup.ConsumerGroupTopicMetadata;
import org.apache.eventmesh.runtime.core.plugin.MQConsumerWrapper;
import
org.apache.eventmesh.runtime.core.protocol.grpc.consumer.consumergroup.ConsumerGroupClient;
import
org.apache.eventmesh.runtime.core.protocol.grpc.consumer.consumergroup.ConsumerGroupTopicConfig;
+import
org.apache.eventmesh.runtime.core.protocol.grpc.consumer.consumergroup.GrpcType;
+import
org.apache.eventmesh.runtime.core.protocol.grpc.consumer.consumergroup.StreamTopicConfig;
+import
org.apache.eventmesh.runtime.core.protocol.grpc.consumer.consumergroup.WebhookTopicConfig;
import
org.apache.eventmesh.runtime.core.protocol.grpc.producer.EventMeshProducer;
import
org.apache.eventmesh.runtime.core.protocol.grpc.producer.SendMessageContext;
import org.apache.eventmesh.runtime.core.protocol.grpc.push.HandleMsgContext;
@@ -48,10 +55,13 @@ import org.apache.eventmesh.runtime.util.EventMeshUtil;
import org.apache.commons.collections4.MapUtils;
+import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Properties;
+import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
@@ -108,7 +118,7 @@ public class EventMeshConsumer {
requireRestart = true;
}
topicConfig.registerClient(client);
-
+ updateMetaData();
return requireRestart;
}
@@ -129,10 +139,61 @@ public class EventMeshConsumer {
requireRestart = true;
}
}
-
+ updateMetaData();
return requireRestart;
}
+ public void updateMetaData() {
+ if (!eventMeshGrpcConfiguration.isEventMeshServerMetaStorageEnable()) {
+ return;
+ }
+ try {
+ Map<String, String> metadata = new HashMap<>(1 << 4);
+ for (Map.Entry<String, ConsumerGroupTopicConfig> consumerGroupMap
: consumerGroupTopicConfig.entrySet()) {
+ String topic = consumerGroupMap.getKey();
+
+ ConsumerGroupTopicConfig cgtConfig =
consumerGroupMap.getValue();
+
+ GrpcType grpcType = cgtConfig.getGrpcType();
+ String consumerGroupKey = cgtConfig.getConsumerGroup();
+ ConsumerGroupMetadata consumerGroupMetadata = new
ConsumerGroupMetadata();
+ Map<String, ConsumerGroupTopicMetadata>
consumerGroupTopicMetadataMap =
+ new HashMap<>(1 << 4);
+ consumerGroupMetadata.setConsumerGroup(consumerGroupKey);
+ if (GrpcType.STREAM == grpcType) {
+ StreamTopicConfig streamTopicConfig = (StreamTopicConfig)
cgtConfig;
+ ConsumerGroupTopicMetadata consumerGroupTopicMetadata =
new ConsumerGroupTopicMetadata();
+
consumerGroupTopicMetadata.setConsumerGroup(streamTopicConfig.getConsumerGroup());
+
consumerGroupTopicMetadata.setTopic(streamTopicConfig.getTopic());
+ Set<String> clientSet = new HashSet<>();
+
streamTopicConfig.getIdcEmitterMap().values().forEach(stringEmitterMap -> {
+ clientSet.addAll(stringEmitterMap.keySet());
+ });
+
+ consumerGroupTopicMetadata.setUrls(clientSet);
+ consumerGroupTopicMetadataMap.put(topic,
consumerGroupTopicMetadata);
+ } else {
+ WebhookTopicConfig webhookTopicConfig =
(WebhookTopicConfig) cgtConfig;
+ ConsumerGroupTopicMetadata consumerGroupTopicMetadata =
new ConsumerGroupTopicMetadata();
+
consumerGroupTopicMetadata.setConsumerGroup(webhookTopicConfig.getConsumerGroup());
+
consumerGroupTopicMetadata.setTopic(webhookTopicConfig.getTopic());
+ Set<String> set = new
HashSet<>(webhookTopicConfig.getTotalUrls());
+ consumerGroupTopicMetadata.setUrls(set);
+ consumerGroupTopicMetadataMap.put(topic,
consumerGroupTopicMetadata);
+ }
+
+
consumerGroupMetadata.setConsumerGroupTopicMetadataMap(consumerGroupTopicMetadataMap);
+ metadata.put(consumerGroupKey,
JsonUtils.toJSONString(consumerGroupMetadata));
+ }
+ metadata.put(EventMeshMetaConfig.EVENT_MESH_PROTO, "grpc");
+
+ eventMeshGrpcServer.getMetaStorage().updateMetaData(metadata);
+
+ } catch (Exception e) {
+ log.error("update eventmesh metadata error", e);
+ }
+ }
+
public synchronized void init() throws Exception {
if (MapUtils.isEmpty(consumerGroupTopicConfig)) {
// no topics, don't init the consumer
diff --git
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/consumer/consumergroup/StreamTopicConfig.java
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/consumer/consumergroup/StreamTopicConfig.java
index f8da24a4e..36632466f 100644
---
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/consumer/consumergroup/StreamTopicConfig.java
+++
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/consumer/consumergroup/StreamTopicConfig.java
@@ -104,6 +104,10 @@ public class StreamTopicConfig extends
ConsumerGroupTopicConfig {
+ ",topic=" + topic + "}";
}
+ public Map<String, Map<String, EventEmitter<CloudEvent>>>
getIdcEmitterMap() {
+ return idcEmitterMap;
+ }
+
public Map<String, List<EventEmitter<CloudEvent>>> getIdcEmitters() {
return idcEmitters;
}
diff --git
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/LocalSubscribeEventProcessor.java
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/LocalSubscribeEventProcessor.java
index a0a789bab..10b03d220 100644
---
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/LocalSubscribeEventProcessor.java
+++
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/LocalSubscribeEventProcessor.java
@@ -196,7 +196,7 @@ public class LocalSubscribeEventProcessor extends
AbstractEventProcessor {
}
// Update service metadata
- updateMetadata();
+ eventMeshHTTPServer.getSubscriptionManager().updateMetaData();
}
}
diff --git
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/LocalUnSubscribeEventProcessor.java
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/LocalUnSubscribeEventProcessor.java
index 40cb1872e..fc2fe01eb 100644
---
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/LocalUnSubscribeEventProcessor.java
+++
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/LocalUnSubscribeEventProcessor.java
@@ -232,7 +232,7 @@ public class LocalUnSubscribeEventProcessor extends
AbstractEventProcessor {
}
// Update service metadata
- updateMetadata();
+ eventMeshHTTPServer.getSubscriptionManager().updateMetaData();
}
}
diff --git
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/SubscribeProcessor.java
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/SubscribeProcessor.java
index d93ba6134..7133f1beb 100644
---
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/SubscribeProcessor.java
+++
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/SubscribeProcessor.java
@@ -205,6 +205,7 @@ public class SubscribeProcessor implements
HttpRequestProcessor {
summaryMetrics.recordSendMsgFailed();
summaryMetrics.recordSendMsgCost(endTime - startTime);
}
+ eventMeshHTTPServer.getSubscriptionManager().updateMetaData();
}
}
diff --git
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/UnSubscribeProcessor.java
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/UnSubscribeProcessor.java
index ecc5a0980..85f67a502 100644
---
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/UnSubscribeProcessor.java
+++
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/UnSubscribeProcessor.java
@@ -234,6 +234,7 @@ public class UnSubscribeProcessor implements
HttpRequestProcessor {
summaryMetrics.recordSendMsgCost(endTime - startTime);
}
}
+ eventMeshHTTPServer.getSubscriptionManager().updateMetaData();
}
}
diff --git
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/inf/AbstractEventProcessor.java
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/inf/AbstractEventProcessor.java
index 9ca2403fe..729d3c5f4 100644
---
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/inf/AbstractEventProcessor.java
+++
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/inf/AbstractEventProcessor.java
@@ -34,9 +34,7 @@ import org.apache.eventmesh.meta.nacos.constant.NacosConstant;
import org.apache.eventmesh.runtime.boot.EventMeshHTTPServer;
import org.apache.eventmesh.runtime.configuration.EventMeshHTTPConfiguration;
import org.apache.eventmesh.runtime.constants.EventMeshConstants;
-import org.apache.eventmesh.runtime.core.consumergroup.ConsumerGroupConf;
import org.apache.eventmesh.runtime.core.consumergroup.ConsumerGroupMetadata;
-import org.apache.eventmesh.runtime.core.consumergroup.ConsumerGroupTopicConf;
import
org.apache.eventmesh.runtime.core.consumergroup.ConsumerGroupTopicMetadata;
import
org.apache.eventmesh.runtime.core.protocol.http.processor.AsyncHttpProcessor;
import org.apache.eventmesh.runtime.meta.MetaStorage;
@@ -72,52 +70,6 @@ public abstract class AbstractEventProcessor implements
AsyncHttpProcessor {
this.eventMeshHTTPServer = eventMeshHTTPServer;
}
- /**
- * Add a topic with subscribers to the service's metadata.
- */
- protected void updateMetadata() {
- if
(!eventMeshHTTPServer.getEventMeshHttpConfiguration().isEventMeshServerMetaStorageEnable())
{
- return;
- }
-
- try {
-
- Map<String, String> metadata = new HashMap<>(1 << 4);
- for (Map.Entry<String, ConsumerGroupConf> consumerGroupMap :
-
eventMeshHTTPServer.getSubscriptionManager().getLocalConsumerGroupMapping().entrySet())
{
-
- String consumerGroupKey = consumerGroupMap.getKey();
- ConsumerGroupConf consumerGroupConf =
consumerGroupMap.getValue();
-
- ConsumerGroupMetadata consumerGroupMetadata = new
ConsumerGroupMetadata();
- consumerGroupMetadata.setConsumerGroup(consumerGroupKey);
-
- Map<String, ConsumerGroupTopicMetadata>
consumerGroupTopicMetadataMap =
- new HashMap<>(1 << 4);
- for (Map.Entry<String, ConsumerGroupTopicConf>
consumerGroupTopicConfEntry :
- consumerGroupConf.getConsumerGroupTopicConf().entrySet()) {
- final String topic = consumerGroupTopicConfEntry.getKey();
- ConsumerGroupTopicConf consumerGroupTopicConf =
consumerGroupTopicConfEntry.getValue();
- ConsumerGroupTopicMetadata consumerGroupTopicMetadata =
new ConsumerGroupTopicMetadata();
-
consumerGroupTopicMetadata.setConsumerGroup(consumerGroupTopicConf.getConsumerGroup());
-
consumerGroupTopicMetadata.setTopic(consumerGroupTopicConf.getTopic());
-
consumerGroupTopicMetadata.setUrls(consumerGroupTopicConf.getUrls());
-
- consumerGroupTopicMetadataMap.put(topic,
consumerGroupTopicMetadata);
- }
-
-
consumerGroupMetadata.setConsumerGroupTopicMetadataMap(consumerGroupTopicMetadataMap);
- metadata.put(consumerGroupKey,
JsonUtils.toJSONString(consumerGroupMetadata));
- }
-
- eventMeshHTTPServer.getRegistry().registerMetadata(metadata);
-
- } catch (Exception e) {
- log.error("[LocalSubscribeEventProcessor] update eventmesh
metadata error", e);
- }
- }
-
-
protected String getTargetMesh(String consumerGroup,
List<SubscriptionItem> subscriptionList)
throws Exception {
// Currently only supports http
@@ -127,7 +79,7 @@ public abstract class AbstractEventProcessor implements
AsyncHttpProcessor {
}
String targetMesh = "";
- MetaStorage metaStorage = eventMeshHTTPServer.getRegistry();
+ MetaStorage metaStorage = eventMeshHTTPServer.getMetaStorage();
List<EventMeshDataInfo> allEventMeshInfo =
metaStorage.findAllEventMeshInfo();
String httpServiceName =
ConfigurationContextUtil.HTTP + "-" + NacosConstant.GROUP + "@@" +
httpConfiguration.getEventMeshName()
diff --git
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/group/ClientGroupWrapper.java
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/group/ClientGroupWrapper.java
index 7bc038534..3d003bac9 100644
---
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/group/ClientGroupWrapper.java
+++
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/group/ClientGroupWrapper.java
@@ -215,7 +215,8 @@ public class ClientGroupWrapper {
Map<String, Session> sessions = new HashMap<>();
topic2sessionInGroupMapping.put(topic, sessions);
}
- if (r =
topic2sessionInGroupMapping.get(topic).putIfAbsent(session.getSessionId(),
session) == null) {
+ Session s =
topic2sessionInGroupMapping.get(topic).putIfAbsent(session.getSessionId(),
session);
+ if (s == null) {
if (log.isInfoEnabled()) {
log.info("Cache session success, group:{} topic:{}
client:{} sessionId:{}", group,
topic, session.getClient(), session.getSessionId());
diff --git
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/group/ClientSessionGroupMapping.java
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/group/ClientSessionGroupMapping.java
index c86c84e11..394118579 100644
---
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/group/ClientSessionGroupMapping.java
+++
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/group/ClientSessionGroupMapping.java
@@ -17,12 +17,16 @@
package org.apache.eventmesh.runtime.core.protocol.tcp.client.group;
+import org.apache.eventmesh.api.meta.config.EventMeshMetaConfig;
import org.apache.eventmesh.common.protocol.SubscriptionItem;
import org.apache.eventmesh.common.protocol.SubscriptionMode;
import org.apache.eventmesh.common.protocol.tcp.UserAgent;
+import org.apache.eventmesh.common.utils.JsonUtils;
import org.apache.eventmesh.common.utils.ThreadUtils;
import org.apache.eventmesh.runtime.boot.EventMeshTCPServer;
import org.apache.eventmesh.runtime.constants.EventMeshConstants;
+import org.apache.eventmesh.runtime.core.consumergroup.ConsumerGroupMetadata;
+import
org.apache.eventmesh.runtime.core.consumergroup.ConsumerGroupTopicMetadata;
import
org.apache.eventmesh.runtime.core.protocol.tcp.client.EventMeshTcp2Client;
import
org.apache.eventmesh.runtime.core.protocol.tcp.client.group.dispatch.DownstreamDispatchStrategy;
import
org.apache.eventmesh.runtime.core.protocol.tcp.client.group.dispatch.FreePriorityDispatchStrategy;
@@ -38,8 +42,10 @@ import org.apache.commons.collections4.MapUtils;
import java.lang.ref.WeakReference;
import java.net.InetSocketAddress;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Map;
import java.util.Objects;
+import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
@@ -482,4 +488,48 @@ public class ClientSessionGroupMapping {
return result;
}
+
+ public void updateMetaData() {
+ if
(!eventMeshTCPServer.getEventMeshTCPConfiguration().isEventMeshServerMetaStorageEnable())
{
+ return;
+ }
+ try {
+ Map<String, String> metadata = new HashMap<>(1 << 4);
+
+ for (Map.Entry<String, ClientGroupWrapper> clientGroupWrapperMap :
this.clientGroupMap.entrySet()) {
+ String group = clientGroupWrapperMap.getKey();
+ ClientGroupWrapper cgw = clientGroupWrapperMap.getValue();
+ ConsumerGroupMetadata consumerGroupMetadata = new
ConsumerGroupMetadata();
+ consumerGroupMetadata.setConsumerGroup(group);
+ Map<String, ConsumerGroupTopicMetadata>
consumerGroupTopicMetadataMap =
+ new HashMap<>(1 << 4);
+ Map<String, Map<String, Session>> topic2sessionInGroupMapping
= cgw.getTopic2sessionInGroupMapping();
+ for (Map.Entry<String, Map<String, Session>> topicSessionMap :
topic2sessionInGroupMapping.entrySet()) {
+ String topic = topicSessionMap.getKey();
+ Map<String, Session> sessionMap =
topicSessionMap.getValue();
+
+ ConsumerGroupTopicMetadata consumerGroupTopicMetadata =
new ConsumerGroupTopicMetadata();
+ consumerGroupTopicMetadata.setConsumerGroup(group);
+ consumerGroupTopicMetadata.setTopic(topic);
+ Set<String> sessionSet = new HashSet<>();
+ for (Map.Entry<String, Session> sessionEntry :
sessionMap.entrySet()) {
+ String sessionId = sessionEntry.getKey();
+ Session session = sessionEntry.getValue();
+ sessionSet.add(session.toString());
+ }
+ consumerGroupTopicMetadata.setUrls(sessionSet);
+ consumerGroupTopicMetadataMap.put(topic,
consumerGroupTopicMetadata);
+ }
+
+
consumerGroupMetadata.setConsumerGroupTopicMetadataMap(consumerGroupTopicMetadataMap);
+ metadata.put(group,
JsonUtils.toJSONString(consumerGroupMetadata));
+ }
+ metadata.put(EventMeshMetaConfig.EVENT_MESH_PROTO, "tcp");
+
+ eventMeshTCPServer.getMetaStorage().updateMetaData(metadata);
+
+ } catch (Exception e) {
+ log.error("update eventmesh metadata error", e);
+ }
+ }
}
diff --git
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/processor/HelloProcessor.java
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/processor/HelloProcessor.java
index 507ff2ffc..453b6e671 100644
---
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/processor/HelloProcessor.java
+++
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/processor/HelloProcessor.java
@@ -73,7 +73,7 @@ public class HelloProcessor implements TcpProcessor {
String subsystem = user.getSubsystem();
if
(eventMeshTCPServer.getEventMeshTCPConfiguration().isEventMeshServerSecurityEnable())
{
- EventMeshAppSubTopicInfo eventMeshAppSubTopicInfo =
eventMeshTCPServer.getRegistry().findEventMeshAppSubTopicInfo(group);
+ EventMeshAppSubTopicInfo eventMeshAppSubTopicInfo =
eventMeshTCPServer.getMetaStorage().findEventMeshAppSubTopicInfo(group);
if (eventMeshAppSubTopicInfo == null) {
throw new AclException("no group register");
}
diff --git
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/processor/SubscribeProcessor.java
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/processor/SubscribeProcessor.java
index 62bf6cc82..7c148f469 100644
---
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/processor/SubscribeProcessor.java
+++
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/processor/SubscribeProcessor.java
@@ -72,7 +72,7 @@ public class SubscribeProcessor implements TcpProcessor {
subscriptionInfo.getTopicList().forEach(item -> {
if (eventMeshServerSecurityEnable) {
try {
- EventMeshAppSubTopicInfo eventMeshAppSubTopicInfo =
eventMeshTCPServer.getRegistry().findEventMeshAppSubTopicInfo(group);
+ EventMeshAppSubTopicInfo eventMeshAppSubTopicInfo =
eventMeshTCPServer.getMetaStorage().findEventMeshAppSubTopicInfo(group);
if (eventMeshAppSubTopicInfo == null) {
throw new AclException("no group register");
}
@@ -91,6 +91,7 @@ public class SubscribeProcessor implements TcpProcessor {
log.info("SubscribeTask succeed|user={}|topics={}",
session.getClient(), subscriptionItems);
}
}
+ eventMeshTCPServer.getClientSessionGroupMapping().updateMetaData();
msg.setHeader(new Header(Command.SUBSCRIBE_RESPONSE,
OPStatus.SUCCESS.getCode(), OPStatus.SUCCESS.getDesc(),
pkg.getHeader().getSeq()));
} catch (Exception e) {
log.error("SubscribeTask failed|user={}|errMsg={}",
session.getClient(), e);
@@ -100,5 +101,4 @@ public class SubscribeProcessor implements TcpProcessor {
}
}
-
}
diff --git
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/rebalance/EventMeshRebalanceImpl.java
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/rebalance/EventMeshRebalanceImpl.java
index 15d6cf857..eb2f13596 100644
---
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/rebalance/EventMeshRebalanceImpl.java
+++
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/rebalance/EventMeshRebalanceImpl.java
@@ -79,7 +79,7 @@ public class EventMeshRebalanceImpl implements
EventMeshRebalanceStrategy {
Map<String, String> localEventMeshMap = null;
List<EventMeshDataInfo> eventMeshDataInfoList = null;
try {
- eventMeshDataInfoList =
eventMeshTCPServer.getRegistry().findEventMeshInfoByCluster(cluster);
+ eventMeshDataInfoList =
eventMeshTCPServer.getMetaStorage().findEventMeshInfoByCluster(cluster);
if (eventMeshDataInfoList == null ||
CollectionUtils.isEmpty(eventMeshDataInfoList)) {
log.warn("doRebalance failed,query eventmesh instances is null
from registry,cluster:{}", cluster);
@@ -222,7 +222,7 @@ public class EventMeshRebalanceImpl implements
EventMeshRebalanceStrategy {
Map<String, Integer> localEventMeshDistributeData = null;
Map<String, Map<String, Integer>> eventMeshClientDistributionDataMap =
null;
try {
- eventMeshClientDistributionDataMap =
eventMeshTCPServer.getRegistry().findEventMeshClientDistributionData(
+ eventMeshClientDistributionDataMap =
eventMeshTCPServer.getMetaStorage().findEventMeshClientDistributionData(
cluster, group, purpose);
if (MapUtils.isEmpty(eventMeshClientDistributionDataMap)) {
diff --git
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/recommend/EventMeshRecommendImpl.java
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/recommend/EventMeshRecommendImpl.java
index 087e5b63c..5ca1415de 100644
---
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/recommend/EventMeshRecommendImpl.java
+++
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/recommend/EventMeshRecommendImpl.java
@@ -58,7 +58,7 @@ public class EventMeshRecommendImpl implements
EventMeshRecommendStrategy {
final String cluster =
eventMeshTCPServer.getEventMeshTCPConfiguration().getEventMeshCluster();
try {
- eventMeshDataInfoList =
eventMeshTCPServer.getRegistry().findEventMeshInfoByCluster(cluster);
+ eventMeshDataInfoList =
eventMeshTCPServer.getMetaStorage().findEventMeshInfoByCluster(cluster);
} catch (Exception e) {
if (log.isWarnEnabled()) {
log.warn("EventMeshRecommend failed,
findEventMeshInfoByCluster failed, cluster:{}, group:{}, purpose:{}, errMsg:{}",
@@ -162,7 +162,7 @@ public class EventMeshRecommendImpl implements
EventMeshRecommendStrategy {
Map<String, Map<String, Integer>> eventMeshClientDistributionDataMap =
null;
try {
- eventMeshClientDistributionDataMap =
eventMeshTCPServer.getRegistry().findEventMeshClientDistributionData(
+ eventMeshClientDistributionDataMap =
eventMeshTCPServer.getMetaStorage().findEventMeshClientDistributionData(
cluster, group, purpose);
} catch (Exception e) {
if (log.isWarnEnabled()) {
diff --git
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/meta/MetaStorage.java
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/meta/MetaStorage.java
index 9756fe19a..71904e4b8 100644
---
a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/meta/MetaStorage.java
+++
b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/meta/MetaStorage.java
@@ -110,6 +110,10 @@ public class MetaStorage {
metaService.registerMetadata(metadata);
}
+ public void updateMetaData(Map<String, String> metadata) {
+ metaService.updateMetaData(metadata);
+ }
+
public boolean register(EventMeshRegisterInfo eventMeshRegisterInfo)
throws MetaException {
return metaService.register(eventMeshRegisterInfo);
}
diff --git a/eventmesh-runtime/src/test/resources/configuration.properties
b/eventmesh-runtime/src/test/resources/configuration.properties
index 59c1e2944..71ad34e19 100644
--- a/eventmesh-runtime/src/test/resources/configuration.properties
+++ b/eventmesh-runtime/src/test/resources/configuration.properties
@@ -25,20 +25,21 @@ eventMesh.server.hostIp=hostIp-succeed!!!
eventMesh.connector.plugin.type=connector-succeed!!!
eventMesh.storage.plugin.type=storage-succeed!!!
eventMesh.security.plugin.type=security-succeed!!!
-eventMesh.metaStorage.plugin.type=metaStorage-succeed!!!
eventMesh.trace.plugin=trace-succeed!!!
-eventMesh.server.metaStorage.registerIntervalInMills=816
-eventMesh.server.metaStorage.fetchRegistryAddrIntervalInMills=1816
+
eventMesh.metrics.plugin=metrics-succeed1!!!,metrics-succeed2!!!,metrics-succeed3!!!
+eventMesh.metaStorage.plugin.type=metaStorage-succeed!!!
eventMesh.metaStorage.plugin.server-addr=server-addr-succeed1!!!
+eventMesh.metaStorage.plugin.enabled=true
+eventMesh.metaStorage.plugin.username=username-succeed!!!
+eventMesh.metaStorage.plugin.password=password-succeed!!!
+eventMesh.metaStorage.plugin.registerIntervalInMills=816
+eventMesh.metaStorage.plugin.fetchRegistryAddrIntervalInMills=1816
eventMesh.server.security.enabled=true
-eventMesh.server.metaStorage.enabled=true
eventMesh.server.trace.enabled=true
eventMesh.server.provide.protocols=TCP,HTTP,GRPC
-eventMesh.metaStorage.plugin.username=username-succeed!!!
-eventMesh.metaStorage.plugin.password=password-succeed!!!
# EventMeshHTTPConfiguration config
eventMesh.server.http.port=1816
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]