-
Notifications
You must be signed in to change notification settings - Fork 642
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Question] Syncronize replicas of eventmesh runtime #4964
Comments
Welcome to the Apache EventMesh community!! Please make sure to include all the relevant context. If you are interested in contributing to our project, please let us know! Want to get closer to the community?
Mailing Lists:
|
You can use nginx to reverse proxy multiple EventMesh Runtime nodes. In the new architecture being developed for EventMesh, a traffic proxy layer will be introduced, at which point nginx will no longer be needed. |
But even if I use reverse proxy, subscription request will be recieved only by one of the nodes, and if this node fails, subscription will be lost. And if request for subscription will be recieved by all nodes, consumer will recieve same message from topic multiple times (at least it's how I understand it). So is there a workaround to not lose subscription for topic if one of nodes fails? |
You can check |
I've checked listed source file for http mode, and as far as I understand, it allows for consumer to select a node if multiple ip addresses are given. It's not quite what I'm looking for. In my situation, I have multiple pods with eventmesh-runtime running, so I will have only one ip address to connect, which represents service connected to multiple eventmesh runtimes. In current way of deployment, if I will sent a subscribe request, it will be recieved by one of the pods, and if this pod will fail, the subscription will be lost. Heartbeat request won't fail, because 1) it will be routed to a different pod ;2) failed pod will be instantly restarted. In the end, subscribtion will be lost, and consumer won't know about it. So I guess that using multiple eventmesh runtimes with single data source doesnt't make sense |
Yes, the issue you mentioned does exist in version 1.10.0. While the runtime synchronizes subscription information from other nodes in the Meta, it does not automatically switch streams for the client. In the Function architecture that has already been merged into the master branch, we have introduced a traffic proxy layer to address this problem. |
Can you give me more information about "Meta", is it some kind of shared storage? I didn't see it in documentation, maybe thos also can help me in solving my problem. |
Meta is where cluster metadata is stored. It can be a registry like Nacos or some kind of distributed consistency protocol. |
Ok, thanks for your answers! |
Search before asking
Question
I am deploying event mesh in a kubernetes cluster, and I have a question I couldn't find in documentation.
For example, I have 3 replicas of eventmesh runtime, and there's a consumer subscribed to one of them. If this pod will fail, subscription will be lost and consumer won't get new messages from topic until he will resubscribe. Can I do something to not lose subscriptions, maybe there's a way to synchronize subscriptions between different replicas of event mesh runtime?
The text was updated successfully, but these errors were encountered: