Author |
Message
|
mqprimerib |
Posted: Tue Nov 15, 2016 6:13 am Post subject: load balancing in front of QM clusters |
|
|
Apprentice
Joined: 30 Mar 2016 Posts: 36 Location: Detroit Rock City
|
So we're still considering the use of QM clusters. My dev counterpart asked if we could use the F5 load balancer in front of the QM cluster pair I have set up.
Has anyone done this? I could create an alias that would round robin between both QMs in the cluster since they'd have the same listener port destination. But since the QM names in the cluster are recommended to be different (IE, QM1 and QM2) I'm not sure how this would work.
I'm thinking that they can either have QM clusters and use the Websphere Application Server connection name list to connect to them, or just don't use QM clusters and F5 load balance between two QMs that aren't clustered.
Hope this makes sense. |
|
Back to top |
|
 |
Vitor |
Posted: Tue Nov 15, 2016 6:35 am Post subject: Re: load balancing in front of QM clusters |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
mqprimerib wrote: |
I could create an alias that would round robin between both QMs in the cluster since they'd have the same listener port destination. |
How? An alias queue doesn't associate with a listener port.
mqprimerib wrote: |
But since the QM names in the cluster are recommended to be different (IE, QM1 and QM2) |
They're not recommended to be different, they have to be different. If they're the same your cluster will behave unpredictably and will be impossible to administer.
mqprimerib wrote: |
I'm not sure how this would work. |
It wouldn't.
mqprimerib wrote: |
I'm thinking that they can either have QM clusters and use the Websphere Application Server connection name list to connect to them, or just don't use QM clusters and F5 load balance between two QMs that aren't clustered. |
You never connect to a cluster. You always connect to a queue manager, which may or may not be participating in a cluster and there's no reason why all of it's queues (even if it's a cluster member) are shared in the cluster.
You need to segregate the connection to a queue manager (which can be handled by an F5) from the distribution of messages (which should be handled by the MQ cluster). These are 2 separate concepts. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
mqprimerib |
Posted: Thu Nov 17, 2016 10:55 am Post subject: |
|
|
Apprentice
Joined: 30 Mar 2016 Posts: 36 Location: Detroit Rock City
|
It's not clear how to configure QM clusters AND use a F5 load balancer in front for incoming WAS puts. If I have a QM cluster pair (QM1 and QM2) and I use a F5 load balancer in front, how do I simplify the application connection?
For instance, an application could call
MQCONNX(QM1)
MQOPEN(CQ1, QM1 )
But what if the F5 directs the connection to land on the QM2 node instead? Wouldn't the MQCONNX fail? |
|
Back to top |
|
 |
mqjeff |
Posted: Thu Nov 17, 2016 10:59 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
You wouldn't use MQCONNX with a qmgr name. You'd use it with a hostname/port. This would be a virtual hostname/port, that the F5 load balanced between the qmgrs.
For every queue you needed to GET from, you'd have to either have a copy on both qmgrs or be able to connect to one qmgr without being load balanced. _________________ chmod -R ugo-wx / |
|
Back to top |
|
 |
mqprimerib |
Posted: Thu Nov 17, 2016 12:50 pm Post subject: |
|
|
Apprentice
Joined: 30 Mar 2016 Posts: 36 Location: Detroit Rock City
|
mqjeff wrote: |
You wouldn't use MQCONNX with a qmgr name. You'd use it with a hostname/port. This would be a virtual hostname/port, that the F5 load balanced between the qmgrs. |
Ah, I see. Thanks.
mqjeff wrote: |
For every queue you needed to GET from, you'd have to either have a copy on both qmgrs or be able to connect to one qmgr without being load balanced. |
Our message GETs will be direct from a Datapower to each QM so I won't worry about load balancing that traffic.
But the PUTs from WAS are where we are possibly looking to load balance and/or cluster. But how can I allow a PUT on both QM1 and QM2 in my cluster CQ.IF14? I mean, if the application tries to MQOPEN QM1 and lands on QM2, I would expect Q MGR NAME ERROR. How do I make this work? |
|
Back to top |
|
 |
Vitor |
Posted: Thu Nov 17, 2016 1:06 pm Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
mqprimerib wrote: |
I mean, if the application tries to MQOPEN QM1 and lands on QM2, I would expect Q MGR NAME ERROR. |
Why?
mqprimerib wrote: |
How do I make this work? |
For one thing you don't issue an MQOPEN on a specific queue manager; you issue it on the queue manager you're connected to. Likewise for an MQPUT1.
You also don't use MQOPEN with a queue manager name; you use it with a queue name.
If the bind options and queue manager setting are correct, a message put to a queue hosted by that queue manager but shared in the cluster will end up either on that hosted in that queue manager or one of the other cluster instances. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
|