Re: Design question
From: Ken Kolda (ken.kolda_at_elliemae-nospamplease.com)
Date: 11/23/04
- Next message: Nick Palmer: "Re: Object lifetimes when created from within another remote object"
- Previous message: mtv: "Re: Design question"
- In reply to: mtv: "Re: Design question"
- Next in thread: mtv: "Re: Design question"
- Reply: mtv: "Re: Design question"
- Messages sorted by: [ date ] [ thread ]
Date: Tue, 23 Nov 2004 15:14:18 -0800
See comments inline below...
"mtv" <mtv@discussions.microsoft.com> wrote in message
news:BAB57B3C-0530-46BB-88FC-CF2FC39A9C2E@microsoft.com...
> You're right about the effectiveness depends on how we measure the load,
and
> my design may be just simply counting active CAOs to determine work loads.
> Let say we use round-robin to simply distribute client's calls, are there
any
> good and available tools/methods to achieve without building something
like
> mine? How is this method constructed differently/better from what I'm
having?
I wasn't suggesting you abandon your architecture. But in your design you
have this real-time data going between the FactoryManagers and the CAO
servers. If your Factory Managers simply gave out the CAOs round-robin,
there would be no need for all the computation of load and communication to
keep the factory managers up to date. You just assume that, on avaerage, the
load will be close to balanced (of course, there's no assurance of this).
>
> As far as my design relates, at least couple of choices I can see,
including
> yours, but not sure what is better than the other:
>
> 1/ Reference by Server name: good if the current one is retired and use
the
> same name on the new box. Client references to ServerName:Port and that's
> never changed.
If you're retiring the machine and using the same name for the new one, you
would probably use the same IP address as well, right? So, I'm not sure that
this is a meaningful scenario.
> 2/ virtual addressing: how does this work?
By virtual addressing I mean that you use a device, such as a router or load
balancer, to map a constant, external IP address to an internal IP address.
The clients are hard-coded against the external IP (or a host name that maps
to that IP). When you need to switch servers, you modify the mapping in the
router so all traffic is routed to the new server.
You can also just do a DNS virtual address, i.e. hard code a host name into
your clients. Then, as needed, modify the IP address to which the host name
maps. The issue here is that clients will cache the IP address when they
first resolve the host name, so DNS changes won't be seen until the client
restarts.
> 3/ Use www domain name -> FactoryManagers are now running as Web Services
> that call server Singleton. If this Singleton is moved to new server, I
can
> just update reference info on Web Server. This adds another layer to the
> complexity.
>
As you said, this just adds one more layer of indirection. Now, instead of
your FactoryManagers being in fixed locations, the web service must be in a
fixed location. I don't know if that buys you anything, but then again you
have a greater knowledge of why or how frequently the various servers would
be moving around in the first place.
Ken
- Next message: Nick Palmer: "Re: Object lifetimes when created from within another remote object"
- Previous message: mtv: "Re: Design question"
- In reply to: mtv: "Re: Design question"
- Next in thread: mtv: "Re: Design question"
- Reply: mtv: "Re: Design question"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|