Pil0tXia commented on code in PR #230:
URL: https://github.com/apache/eventmesh-site/pull/230#discussion_r1673326081
##########
sidebars/docs.js:
##########
@@ -103,5 +103,17 @@ module.exports = {
},
],
},
+ {
+ type: 'category',
+ label: 'Distributed Cluster Deployment',
+ collapsible: true,
+ collapsed: false,
+ items: [
+ {
+ type: 'autogenerated',
+ dirName: 'distributed-cluster-deployment-guide',
+ },
+ ],
+ }
Review Comment:
It would be better to place this chapter under the Design Document category.
Once you have written the quick start guide for cluster deployment, this
document will need to be placed under the Installation and Deployment category.
##########
docs/distributed-cluster-deployment-guide/01-distributed-cluster-deployment-guide.md:
##########
@@ -0,0 +1,24 @@
+# Distributed Consistency Protocol for EventMesh
+## **Background Knowledge and Current State:**
+* Kafka utilizes KRaft for insync replication of message from main broker to
following brokers.
+* In order to prevent the loss of messages, Kafka has a leadership election
mechanism
+* EventMesh does not fully implement JRaft protocol.
+* A partially functional JRaft PR has been merged, but it requires a fixed IP
cluster list defined in the `eventmesh.properties` file (immutable after
initiation). Once a node fails the whole cluster fails. This limits elastic
scaling of EventMesh cluster nodes during runtime.
+
+## **Using a Distributed Consistency Protocol:**
+### **Solutions: Implement fully functional JRaft Protocol Interface**
+**Result**
+* Enables dynamic scaling and dynamic cluster discovery.
+* If a main node registers in the cluster it will be the main node and start
to sync the message among followers.
+* Leader election occurs if the leading node fails.
+Recovered leading node will become a follower.
+* Node failure will no longer results in service failure.
+* Once implement the Jraft interface no need to deploy Nacos.
+
+## **Using the Reverse Proxy:**
+**Current State:** Nginx can be the reverse proxy of EventMesh. In the SDK we
set the Nginx IP address, Nginx will transfer the subscription address to a
EventMesh runtime.
Review Comment:
This section requires additional information on `nacos`.
##########
docs/distributed-cluster-deployment-guide/01-distributed-cluster-deployment-guide.md:
##########
@@ -0,0 +1,24 @@
+# Distributed Consistency Protocol for EventMesh
+## **Background Knowledge and Current State:**
+* Kafka utilizes KRaft for insync replication of message from main broker to
following brokers.
+* In order to prevent the loss of messages, Kafka has a leadership election
mechanism
+* EventMesh does not fully implement JRaft protocol.
+* A partially functional JRaft PR has been merged, but it requires a fixed IP
cluster list defined in the `eventmesh.properties` file (immutable after
initiation). Once a node fails the whole cluster fails. This limits elastic
scaling of EventMesh cluster nodes during runtime.
+
+## **Using a Distributed Consistency Protocol:**
+### **Solutions: Implement fully functional JRaft Protocol Interface**
+**Result**
+* Enables dynamic scaling and dynamic cluster discovery.
+* If a main node registers in the cluster it will be the main node and start
to sync the message among followers.
+* Leader election occurs if the leading node fails.
+Recovered leading node will become a follower.
+* Node failure will no longer results in service failure.
+* Once implement the Jraft interface no need to deploy Nacos.
+
+## **Using the Reverse Proxy:**
+**Current State:** Nginx can be the reverse proxy of EventMesh. In the SDK we
set the Nginx IP address, Nginx will transfer the subscription address to a
EventMesh runtime.
+### **Solutions: Add Gateway Proxy Layer:** A next generation of functional
solution for the new architecture. Like Nginx.
+**Current Flaws**
Review Comment:
The title is quite lengthy and also, Nginx is not exactly the next-gen
solution for the new architecture, but rather a compromise implementation for
load balancing as of now.
##########
docs/distributed-cluster-deployment-guide/01-distributed-cluster-deployment-guide.md:
##########
@@ -0,0 +1,24 @@
+# Distributed Consistency Protocol for EventMesh
+## **Background Knowledge and Current State:**
+* Kafka utilizes KRaft for insync replication of message from main broker to
following brokers.
Review Comment:
Just a gentle correction, it should be "In-Sync" replication, not "insync"
replication. The meaning of these two words in English is completely opposite.
##########
docs/distributed-cluster-deployment-guide/01-distributed-cluster-deployment-guide.md:
##########
@@ -0,0 +1,24 @@
+# Distributed Consistency Protocol for EventMesh
Review Comment:
The Distributed Consistency Protocol is applicable only to protocols akin to
KRaft/JRaft and the like. Reverse Proxy does not fall under the purview of the
Distributed Consistency Protocol.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]