Olivier -  look at qpid dispatch router that¹s how I'd handle it.

Jack

Jack Gibson
Chief Architect
Core Payments Platforms @ PayPal






On 5/20/15, 5:31 AM, "Olivier Mallassi" <olivier.malla...@gmail.com> wrote:

>Thank you rob. I will use non persitent messages for this.
>
>I like your idea of load-balancing at "message layer" instead of
>"connection layer"! I need to figure out how to implement this, but this
>is
>clearly a more elegant solution (knowing we do not have thousands of
>processes and connections)
>
>PS : for the record, we will also "functionally partitioned" : event of
>type A goes to broker A (eg. a dedicated JVM), event of type B goes to
>broker B
>
>On Wed, May 20, 2015 at 12:48 PM, Rob Godfrey <rob.j.godf...@gmail.com>
>wrote:
>
>> On 20 May 2015 at 12:00, Olivier Mallassi <olivier.malla...@gmail.com>
>> wrote:
>> > Hi all
>> >
>> > my apologies in advance if I ask dummy questions and for this (maybe
>>too)
>> > long email but *i need some help in regards with "qpid clustering"*.
>> > I have read some of the already asked questions on the ML and would
>>like
>> to
>> > confirm (or not) some points.
>> >
>> > *Overview*:
>> > I wanna use the Java Broker (mainly because I need to support several
>>OS
>> -
>> > linux, solaris, windows....) but I am wondering our to scale out (or
>>how
>> to
>> > cluster) qpid (target throughput will be around 150k events per sec,
>> > message size variable but less than 1kB, connections number is not
>>known
>> > but dozens.
>> > I saw some numbers on the ML (like 70k events per sec for a single
>>broker
>> > etc...) so it appears I will have to distribute my load on 2 or 3
>> brokers.
>> >
>>
>> Are you using persistent or non persistent messages?  The throughput
>> the broker can achieve will obviously be very much tied to the type of
>> messages and the sort of hardware you are using.
>>
>> > for now, I am not talking about HA.
>> >
>> > *1/ *I can cluster qipd using LVS or corosync. not ideal in my case
>> because
>> > it relies on OS specific solution
>> >
>> > *2/* I noticed that the messaging api uses the first IP in the
>>specified
>> > broker list (amqp://guest:guest@
>> > /default?failover='roundrobin?cyclecount='2''&brokerlist=")
>> >
>> > So I can use a custom strategy (round robin, zookeeper based), coded
>>in
>> > java, to shuffle the brokers list and ensure to randomly distribute
>>the
>> > connections (when they are established). it works for fail over, can
>>be
>> > tricky if you want to be "elastic" but it should work.
>> >
>> > what are your thought on that approach?
>>
>> Depending on exactly how your application works, that sounds
>> reasonable... you'd obviously need to ensure that every destination
>> produced to had consumers on...
>>
>> >
>> > *3/* I am yet facing an issue because in some cases, I need to use
>>node
>> > affinity (based on JMSXGroupID...). so given a value of JMSXGroupID, I
>> need
>> > to ensure the same consumer jvm will get it.
>> > so I need to ensure that for a given JMSXgroupID, publisher & consumer
>> use
>> > the same broker (which begin to be tricky, even using hashcode, in
>>case
>> of
>> > failover etc...)
>>
>>
>> At this point it might seem like it would make more sense for every
>> producer/consumer to have connections to every broker... and to do the
>> round-robining at a higher lever than establishing the connection.
>> The client can then make the choice on a per-message basis as to which
>> broker to send to - I have seen this pattern used elsewhere.
>>
>> > Does federation (Dispatch Router) helps in that case (knowing it will
>>add
>> > network hops, and so latency)? Is there any getting started/tutorial
>>that
>> > can help better understanding the fixedAdress and linkRoutePattern?
>> >
>> > 4/ what about HA? It appears I will finish with a topology like
>> >             |                | A.Master --> A.Replica
>> > Client   |   "hash"  | B.Master --> B.Replica
>> >             |                | C.Master --> C.Replica
>> >
>>
>> Unfortunately I'm not very well acquainted with Dispatch - so I'll let
>> others step in here.
>>
>> -- Rob
>>
>> >
>> > Hope I was clear enough. many thanks for your help/feedbacks.
>> > Regards
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
>> For additional commands, e-mail: users-h...@qpid.apache.org
>>
>>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
For additional commands, e-mail: users-h...@qpid.apache.org

Reply via email to