Thanks for the responses - most appreciated. Yes - I know that what I'm trying to do is pub/sub - I was referring to the term "load balancer" as that appeared to be the mechanics around the store and forward mechanism of publishing a message to multiple subscribers in RSB. I guess I was wrong about that - but I'm a bit confused as to how this is working then.
When you say it should work out of the box - are you referring to pub/sub? I'm guessing I have a fundamental misunderstanding of the mechanics here. Process 1 publishes a message which process 2 is subscribed to. Process 2 then publishes a new message which processes A, B, and C are all subscribed to. The way I was thinking about it was that the message would go into a queue and then something would pick up the message and relay it to all the subscribers. Is that not how it works? If not, and the subscribers are simply watching the queue of the publisher, how does the publisher know when all the subscribers have received the message and it can pull the message from the queue? Thanks for helping! Matt On Thu, Jan 29, 2009 at 11:22 AM, Ayende Rahien <[email protected]> wrote: > inline > > On Thu, Jan 29, 2009 at 12:39 PM, Matt Burton <[email protected]> wrote: >> >> Follow-up question - I saw some activity around the load balancer in >> SVN after my last message and dug into it and discovered the >> LoadBalancerHost and it's accompanying >> RemoteAppDomainLoadBalancerHost. I'm not using this for my load >> balancer, yet it's still working - so I'm wondering what it is exactly >> that I've got going here... My workers are configured with load >> balancer endpoints but I'm not sure how the messages are getting sent >> to the worker queues without the MsmqLoadBalancer in play. I've been >> going through the RSB code but I'm not exactly sure of the flow at >> this point. > > We have a problem of terminology. > What you call load balancer I think about as pub/sub. > What the load balancer in RSB is supposed to accomplish is to let you have > several machines sharing the load of a single endpoint. > Think about it like a hardware load balancer in front of a single URL. > >> >> In any event - when I do try to use the LoadBalancerHost or the remote >> app domain loader it complains about the endpoint and threadCount >> properties that it's dependent on. I saw in the unit tests how you're >> manually specifying these values when configuring the container, but I >> don't have hook to do this with the LoadBalancerHost as it doesn't use >> a bootstrapper to configure the host before starting it, even if you >> specify one. I have the facility configuration in my config file, >> obviously, but it's not picking it up for some reason: > > It is not done yet, unfortunately. > >> >> public void Start() >> { >> var container = new WindsorContainer(new XmlInterpreter()); >> container.Kernel.AddFacility("rhino.esb", new >> RhinoServiceBusFacility()); >> container.AddComponent<MsmqLoadBalancer>(); >> >> loadBalancer = container.Resolve<MsmqLoadBalancer>(); >> } >> >> It blows up on the Resolve call. What am I missing? >> >> I'm assuming that if I can get this working that the new KnownWorkers >> public property on MsmqLoadBalancer would be the solution to my >> question below, where I want to know the number of workers >> participating in a load balanced scenario, correct? >> >> Thanks, >> Matt >> >> On Wed, Jan 28, 2009 at 11:05 AM, Matt Burton <[email protected]> >> wrote: >> > I have a scenario where I want to have multiple subscribers to a >> > message such that when the message is published each picks it up and >> > processes it independently. In terms of config I don't want to have >> > the publisher know about each worker node, so I was able to get the >> > load balancer concept running and it works just as I had hoped. >> > >> > Question - the scenario I'm proving out here is one where I'm >> > provisioning software to machines, so that I receive a request to >> > provision a new tenant and then I publish a message to create a new >> > web site for that tenant on N machines. I want to be able to throw a >> > new box into the mix and have it participate in the process >> > automatically. It would be nice to know whether or not the >> > provisioning of the web site was successful on each machine and base >> > the completion of the saga on whether or not all boxes chimed in >> > saying they were successful. In order to do that, however, I'd need to >> > know how many servers were participating, something which looks like >> > it would require some tinkering around with the actual subscription >> > queues themselves to figure out. >> > >> > What would you advise in this scenario? Fire and forget for >> > provisioning the sites - depend on an external solution to monitor >> > errors? Or do I have the workers send back a thumbs up saying that >> > they did their job and when all report back call it good? If so, what >> > are my options for determining the number of subscribers in the load >> > balanced scenario? >> > >> > Thanks, >> > Matt >> > >> >> > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Rhino Tools Dev" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/rhino-tools-dev?hl=en -~----------~----~----~----~------~----~------~--~---
