[openamq-dev] round-robin queues
Martin Sustrik
sustrik at imatix.com
Sun Feb 10 23:00:06 CET 2008
Esteve,
> Following the library use case, the idea is that each box has a database that
> contains the complete set of a specific type, and there's an application in
> some other machine that requests elements that are either magazines, books or
> dvds. Some types are requested more often than others, so they're replicated
> across several boxes (that's why I would like to do round-robin at this
> level). A box could hold more than one type, but given two boxes that contain
> the same type, they might not share the same database with the same types,
> e.g. A and B boxes could contain the book type, but B contains the dvd type
> as well.
>
Your use case looks like standard SOA architecture, i.e. client sends a
request with routing_key=service type=DB table name ('book', 'dvd', etc.)
The request is then routed to the appropriate queue (1 queue per
service) and afterwards the queue content is load balanced between
service instances (individual boxes where the table clones reside). When
the request reaches the service, SQL select is done and content of the
appropriate database row is sent back to the requester.
So far, so good.
The strange thing is that you have 1,000,000 service types. We haven't
seen more than several hundred services and even that results in quite
an unmanageable beast.
How can you manage that amount of DB tables? I just cannot make myself
believe that they are really "independent". How big is the team that
administers the distributed database of that size? It seems strange.
Maybe the categories form a tree-like hierarchy? Maybe they are
cartesian product of two criteria with 1,000 possible values for each of
them? Etc.
My feeling is that there is some piece of the design I am still missing.
Martin
More information about the openamq-dev
mailing list