Skip to content
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

Implementing Long Connection Rebalancing for Server-Side Load Balancing #285

Open
gangb-tech opened this issue Apr 23, 2023 · 5 comments
Open

Comments

@gangb-tech
Copy link
Member

  • Server-side Connection Management

The server needs to maintain the status of all client connections, including the number of client connections, their status, and the current service node they are connected to. When the service node changes, the server needs to reassign the connections to ensure that each connection can be correctly routed to the new service node.

@csh0101
Copy link
Contributor

csh0101 commented May 27, 2023

some problem:

  • I see the code snippet and the blog post about the introduction to long connection in FeatureProbe Project. So I think this feature you mention should be supported by socket.io sever // this repo https://github.com/socket-iox/socket-io?
  • **the server needs to reassign the connection ** this situation is pointed to the network env like mobile application changed? the IP address have changed, and maybe the connection no longer connect the best server node? so are there need a coordinate Component to coordinate connection ?

@gangb-tech
Copy link
Member Author

some problem:

  • I see the code snippet and the blog post about the introduction to long connection in FeatureProbe Project. So I think this feature you mention should be supported by socket.io sever // this repo https://github.com/socket-iox/socket-io?
  • **the server needs to reassign the connection ** this situation is pointed to the network env like mobile application changed? the IP address have changed, and maybe the connection no longer connect the best server node? so are there need a coordinate Component to coordinate connection ?

socket-io is just a library responsible for low-level connections, while the issue of rebalancing occurs at the cluster level, which is more operational in nature. Therefore, this problem needs to be addressed at the architectural level.

@csh0101
Copy link
Contributor

csh0101 commented Jun 20, 2023

some problem:

  • I see the code snippet and the blog post about the introduction to long connection in FeatureProbe Project. So I think this feature you mention should be supported by socket.io sever // this repo https://github.com/socket-iox/socket-io?
  • **the server needs to reassign the connection ** this situation is pointed to the network env like mobile application changed? the IP address have changed, and maybe the connection no longer connect the best server node? so are there need a coordinate Component to coordinate connection ?

socket-io is just a library responsible for low-level connections, while the issue of rebalancing occurs at the cluster level, which is more operational in nature. Therefore, this problem needs to be addressed at the architectural level.

Okay,Thanks. Maybe I need to cost some time to clear my mind.I understand your mind. it points that the rust-server for FeatureProbe, need to upgrade. But I m confused, if we want to Server-Side LodaBalancing in k8s/other situation, as the new rust server add into the cluster,and this one is near to the client(anyway,this just mean the service quality is more better than before), follow your mind, we need reassign the connection to the new server ? .. I have problem, so the lib can support broken connection and replace connection..and is this mean we need a new component ? like a coordinate server, who can aware the join of new server node,and reassign the client connection to the best server .(I think, this maybe need sdk support and server upgrade both?)

my mind is unclear maybe, please forgive me on the community's face.

@gangb-tech
Copy link
Member Author

Yes, you've captured the main idea correctly. We need a component that can effectively monitor the state changes of all cluster nodes (such as going online or offline), and subsequently redistribute the connections across the entire cluster.

@csh0101
Copy link
Contributor

csh0101 commented Jun 26, 2023

Yes, you've captured the main idea correctly. We need a component that can effectively monitor the state changes of all cluster nodes (such as going online or offline), and subsequently redistribute the connections across the entire cluster.

is there a draft about the new arch or the coordinate server. i think it's fun and challenging

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants