|
Home > Archive > BizTalk Server > January 2005 > Load balancing BT server 2004
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Load balancing BT server 2004
|
|
|
| I have a three tier application. The web tier communicates with the Biztalk
2004 tier using MSMQT. We currently have 3 Biztalk machines. Each of the
machines has the same functionality on them. We would like to load balance
the MSMQT messages across these three machines. We have an expensive BigIP
load balancer from F5. We want to use the F5.
We have experimented with load balancing the MSMQT by configuring the F5 to
listen on all ports. It seems that once a web box sends a message to one of
the BT boxes, all the requests from that box will be routed to that same box.
We would like each request to be routed to another box.
My question is has anyone been able to successfully load balance MSMQT
requests using F5? If so then is there some configuration on either the F5
or BT Server that must be made to make this work?
Thank you
| |
| Eldar Musayev 2005-01-06, 5:50 pm |
|
Well, if you send messages to different queues (Biztalk receive locations),
then it should be load balanced ok. In this case, check your F5
configuration. For reference, MSMQ port is 1801.
If you send all messages to the same queue (recieve location in
BizTalk)from the same sender/queue, then you have a problem whether you are
using BizTalk or Windows MSMQ. The reason is that exactly once in order
delivery cannot send the first message to one machine and the second one to
another -- it will break the order. See more in my blog at
http://weblogs.asp.net/eldarm/, September 17 post. That also comes from
the way MSMQ works. When sending from host Ato host B queue C, it
establishes TCP connection. This is the moment where load balancing
happens. After TCP connection is established, all following messages for
queue Ñ from host A to host B go through this keep-alive point-to-point
connection until it is broken for some reason.
Hope, this clarifies the picture. Regards,
Eldar
This posting is provided "AS IS" with no warranties, and confers no rights.
EBusiness Server Team
--------------------[vbcol=seagreen]
Biztalk[vbcol=seagreen]
the[vbcol=seagreen]
balance[vbcol=seagreen]
BigIP[vbcol=seagreen]
to[vbcol=seagreen]
one of[vbcol=seagreen]
box.[vbcol=seagreen]
F5[vbcol=seagreen]
| |
|
| Elday,
e have done some further testing and found out that what you said in your
response about the TCP connection is true (the keep-alives keep the connection
open forever). Our BigIp consultant suggested that we ask MS to see if
there is a way to tear down the TCP connection after each request (thus
allowing the BigIp to load balance each request). Do you know if this is
possible?
Dave
"Eldar Musayev (MSFT)" wrote:
>
> Well, if you send messages to different queues (Biztalk receive locations),
> then it should be load balanced ok. In this case, check your F5
> configuration. For reference, MSMQ port is 1801.
>
> If you send all messages to the same queue (recieve location in
> BizTalk)from the same sender/queue, then you have a problem whether you are
> using BizTalk or Windows MSMQ. The reason is that exactly once in order
> delivery cannot send the first message to one machine and the second one to
> another -- it will break the order. See more in my blog at
> http://weblogs.asp.net/eldarm/, September 17 post. That also comes from
> the way MSMQ works. When sending from host Ato host B queue C, it
> establishes TCP connection. This is the moment where load balancing
> happens. After TCP connection is established, all following messages for
> queue Ñ from host A to host B go through this keep-alive point-to-point
> connection until it is broken for some reason.
>
> Hope, this clarifies the picture. Regards,
> Eldar
>
>
>
> This posting is provided "AS IS" with no warranties, and confers no rights.
>
> EBusiness Server Team
> --------------------
> Biztalk
> the
> balance
> BigIP
> to
> one of
> box.
> F5
>
>
| |
| Eldar Musayev 2005-01-14, 5:49 pm |
| I don't think this is possible, that's the way how MSMQ protocol works. But
even if you will be able to do that, you will not get improvement, because
to maintain in-order delivery BizTalk will have to manage it on the level
of database locks, which are even more expensive.
If you don't care about in-order and guaranteed delivery, consider using
upcoming MSMQ/C adapter (currently still available from Beta place, but
coming up really soon as an official release) This adapter supports classic
MSMQ including express delivery which does not care about order and
delivers with the best effort and so is much more flexible when it comes to
scaling. If you care about in-order or guaranteed delivery (EOIO - exactly
once in order), then your best option is to consider creation of a bunch of
receive queues/locations instead of one.
Regards,
Eldar
This posting is provided "AS IS" with no warranties, and confers no rights.
EBusiness Server Team
--------------------[vbcol=seagreen]
<Tn7rIwB9EHA.3200@cpmsftngxa10.phx.gbl>[vbcol=seagreen]
your[vbcol=seagreen]
connection[vbcol=seagreen]
is[vbcol=seagreen]
locations),[vbcol=seagreen]
you are[vbcol=seagreen]
order[vbcol=seagreen]
one to[vbcol=seagreen]
from[vbcol=seagreen]
for[vbcol=seagreen]
point-to-point[vbcol=seagreen]
rights.[vbcol=seagreen]
the[vbcol=seagreen]
of[vbcol=seagreen]
expensive[vbcol=seagreen]
the F5[vbcol=seagreen]
to[vbcol=seagreen]
same[vbcol=seagreen]
MSMQT[vbcol=seagreen]
either the[vbcol=seagreen]
|
|
|
|
|