Infrastructure using micro services

3 posts / 0 new
Last post
Offline
Last seen: 4 years 10 months ago
Joined: 01/26/2016
Posts: 11
Infrastructure using micro services

Hi,

 

I have a question about the possibilities offered by DDS about a micro-services-based infrastructure.

For the following use case:

I have a program (a micro-service, a standalone binary that acts like a server) and another program (let's call it Client).

The Client(s) can send many (many) requests to the Server, so here our server is not able to process all the requests of all clients.

In my use case, I want to instanciate multiple instances of my Server to process all requests. My Servers do not know the clients (how many clients, how many requests will be received, ...). Same, the clients do not know how many servers there are.

 

Is there any way in DDS to "dispatch" the requests to the Servers, so that 1 request is received only by 1 server, to parallelize the job?

 

No not hesitate if I'm not clear enough ;-)

 

Thanks,

Lucie

Offline
Last seen: 2 years 8 months ago
Joined: 08/09/2017
Posts: 25

The RTI Queuing Service is designed for this type of use-case, and may be appropriate.  Another option is to balance the requests across the servers using a content filter based on the request attributes.  For example, assuming the requests have a field named "type" that has the values 0-10, then you could have each server use a content filtered topic with a range of the values.  Server A could filter for type 0-3, server B for type 4-7, and server C for type 8-10.  This is simpler than using the RTI Queuing Service, but it depends on the ability to divide up the requests in a way that effectively balances the load.

Offline
Last seen: 4 years 10 months ago
Joined: 01/26/2016
Posts: 11

Hi,

 

Thank you for your answer, the RTI Queuing Service seams to be exactly what I needed!

My reasearch on "Load Balancing" did not give me this answer.

 

At first we considered the same kind of solution you mentionned (with filtered topics) but since neither the servers nor the client know how many requests will be sent, it's hard to put it in place.

 

Thank you very much

Lucie