Earlier quoted context omitted.
Not the OP, but I work on the same team. The edge servers are not clustered and share no state. We require at least 2 servers as minimum for fault tolerance.
Did the need for edge server arise from the fact the a service like https://aws.amazon.com/elasticloadbalancing/applicationloadb... didn't exist back then ?
Riot Games Messaging Service
31–39 of 39 posts
Re: Riot Games Messaging Service
#32Earlier quoted context omitted.
Did the need for edge server arise from the fact the a service like https://aws.amazon.com/elasticloadbalancing/applicationloadb... didn't exist back then ?
Well we need edge servers to handle the persistent websocket connections which last through the life the player session.
I am wondering if the ALB would be the preferred method now, if you were to redo it ?
Re: Riot Games Messaging Service
#33Re: Riot Games Messaging Service
#34Do people use zeromq for this kind of work? It seems the various socket types are tailored to building such load balancing and routing architectures, but I'm not aware if zeromq is in use at this scale.
Re: Riot Games Messaging Service
#35Earlier quoted context omitted.
Looks like a load issue, a single server can only take care of so many conn, auth, etc... So having several solves the problem and can scale horizontally easily, but each edge maintains conn information, so a given user needs to be routed to that same server every time. On the other hand, all LBs share a single address and all should be replaceable by each other, they exist purely to route the user to the right edge…
Not the OP, but I work on the same team. The edge servers are not clustered and share no state. We require at least 2 servers as minimum for fault tolerance.
So what happens to a player session when an edge server dies?
Do you have a way to rehydrate the session on a different server?
Re: Riot Games Messaging Service
#36I'd like to see more info on their customized Erlang/OTP mnesia . michalptaszek mentioned it in the comment: http://disq.us/p/1gltwfs
I'm 100% aware that these changes are RMS/Riot specific and won't work in many other situations (e.g. they violate certain transaction isolation properties).
Re: Riot Games Messaging Service
#37Earlier quoted context omitted.
Not the OP, but I work on the same team. The edge servers are not clustered and share no state. We require at least 2 servers as minimum for fault tolerance.
Thanks for replying! So what happens to a player session when an edge server dies? Do you have a way to rehydrate the session on a different server?
Re: Riot Games Messaging Service
#38Earlier quoted context omitted.
Well we need edge servers to handle the persistent websocket connections which last through the life the player session.
yeah the ALB provides that feature as well. I just checked. it was released in Aug 2016. So clearly before that time your setup makes a lot of sense. I am wondering if the ALB would be the preferred method now, if you were to redo it ?
Re: Riot Games Messaging Service
#39Their JSON have an key called payload which saves a String rather than an Object, is there any benefits to doing this? since they also escape the " in the String
Probably that services aren't required to use JSON (since they use many different service languages, it's not unlikely that they use many different serialisation methods - JSON, protobuf, etc.)