ruleTagList) {
+ this.ruleTagList = ruleTagList;
+ }
+
+ public RuleTagRelationship getRuleTagRelationship() {
+ return ruleTagRelationship;
+ }
+
+ public void setRuleTagRelationship(final RuleTagRelationship ruleTagRelationship) {
+ this.ruleTagRelationship = ruleTagRelationship;
+ }
+
+ public String getLaneId() {
+ return laneId;
+ }
+
+ public void setLaneId(final String laneId) {
+ this.laneId = laneId;
+ }
+
+ public Timestamp getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(final Timestamp createTime) {
+ this.createTime = createTime;
+ }
+
+ public Timestamp getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(final Timestamp updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public boolean isEnable() {
+ return enable;
+ }
+
+ public void setEnable(final boolean enable) {
+ this.enable = enable;
+ }
+}
diff --git a/polaris-plugins/polaris-plugins-connector/connector-consul/src/main/java/com/tencent/polaris/plugins/connector/consul/service/lane/entity/LaneRuleTag.java b/polaris-plugins/polaris-plugins-connector/connector-consul/src/main/java/com/tencent/polaris/plugins/connector/consul/service/lane/entity/LaneRuleTag.java
new file mode 100644
index 000000000..ef9877a7d
--- /dev/null
+++ b/polaris-plugins/polaris-plugins-connector/connector-consul/src/main/java/com/tencent/polaris/plugins/connector/consul/service/lane/entity/LaneRuleTag.java
@@ -0,0 +1,88 @@
+package com.tencent.polaris.plugins.connector.consul.service.lane.entity;
+
+import java.sql.Timestamp;
+
+/**
+ * 泳道规则标签
+ *
+ * User: MackZhang
+ * Date: 2020/1/15
+ */
+public class LaneRuleTag {
+
+ private String tagId;
+
+ private String tagName;
+
+ private String tagOperator;
+
+ private String tagValue;
+
+ private String laneRuleId;
+
+ /**
+ * 规则创建时间
+ */
+ private Timestamp createTime;
+
+ /**
+ * 规则更新时间
+ */
+ private Timestamp updateTime;
+
+ public String getTagId() {
+ return tagId;
+ }
+
+ public void setTagId(final String tagId) {
+ this.tagId = tagId;
+ }
+
+ public String getTagName() {
+ return tagName;
+ }
+
+ public void setTagName(final String tagName) {
+ this.tagName = tagName;
+ }
+
+ public String getTagOperator() {
+ return tagOperator;
+ }
+
+ public void setTagOperator(final String tagOperator) {
+ this.tagOperator = tagOperator;
+ }
+
+ public String getTagValue() {
+ return tagValue;
+ }
+
+ public void setTagValue(final String tagValue) {
+ this.tagValue = tagValue;
+ }
+
+ public String getLaneRuleId() {
+ return laneRuleId;
+ }
+
+ public void setLaneRuleId(final String laneRuleId) {
+ this.laneRuleId = laneRuleId;
+ }
+
+ public Timestamp getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(final Timestamp createTime) {
+ this.createTime = createTime;
+ }
+
+ public Timestamp getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(final Timestamp updateTime) {
+ this.updateTime = updateTime;
+ }
+}
diff --git a/polaris-plugins/polaris-plugins-connector/connector-consul/src/main/java/com/tencent/polaris/plugins/connector/consul/service/lane/entity/RuleTagRelationship.java b/polaris-plugins/polaris-plugins-connector/connector-consul/src/main/java/com/tencent/polaris/plugins/connector/consul/service/lane/entity/RuleTagRelationship.java
new file mode 100644
index 000000000..95c98fe2e
--- /dev/null
+++ b/polaris-plugins/polaris-plugins-connector/connector-consul/src/main/java/com/tencent/polaris/plugins/connector/consul/service/lane/entity/RuleTagRelationship.java
@@ -0,0 +1,17 @@
+package com.tencent.polaris.plugins.connector.consul.service.lane.entity;
+
+/**
+ * User: MackZhang
+ * Date: 2020/2/12
+ */
+public enum RuleTagRelationship {
+ /**
+ * 与
+ */
+ RELEATION_AND,
+
+ /**
+ * 或
+ */
+ RELEATION_OR;
+}
diff --git a/polaris-plugins/polaris-plugins-registry/registry-memory/src/main/java/com/tencent/polaris/plugins/registry/memory/MessagePersistHandler.java b/polaris-plugins/polaris-plugins-registry/registry-memory/src/main/java/com/tencent/polaris/plugins/registry/memory/MessagePersistHandler.java
index 11f7f3450..bc68b6b6d 100644
--- a/polaris-plugins/polaris-plugins-registry/registry-memory/src/main/java/com/tencent/polaris/plugins/registry/memory/MessagePersistHandler.java
+++ b/polaris-plugins/polaris-plugins-registry/registry-memory/src/main/java/com/tencent/polaris/plugins/registry/memory/MessagePersistHandler.java
@@ -238,6 +238,8 @@ private Path doSaveService(ServiceEventKey svcEventKey, Message message) {
File persistTmpFile = new File(persistDirPath + File.separator + tmpFileName);
File persistLockFile = new File(persistDirPath + File.separator + lockFileName);
try {
+ // Occasionally the directory cannot be found, so we need to init every time.
+ init();
if (!persistLockFile.exists()) {
if (!persistLockFile.createNewFile()) {
LOG.warn("lock file {} already exists", persistLockFile.getAbsolutePath());
diff --git a/polaris-plugins/polaris-plugins-router/router-lane/pom.xml b/polaris-plugins/polaris-plugins-router/router-lane/pom.xml
index 70fd01a4b..b26a99e51 100644
--- a/polaris-plugins/polaris-plugins-router/router-lane/pom.xml
+++ b/polaris-plugins/polaris-plugins-router/router-lane/pom.xml
@@ -23,12 +23,7 @@