HudsonShi commented on code in PR #230: URL: https://github.com/apache/eventmesh-site/pull/230#discussion_r1674220120
########## docs/distributed-cluster-deployment-guide/01-distributed-cluster-deployment-guide.md: ########## @@ -0,0 +1,24 @@ +# Distributed Consistency Protocol for EventMesh Review Comment: I will fix the title into 'Distributed Consistency Protocol or Reverse proxy' ########## 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: I will fix the title into 'A compromise implementation for load balancing for 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. +* 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: I need your advisory in Nacos deployment. -- 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]
