LOL FYI - I shuffled everything around and it's working brilliantly with the understanding of how pub/sub is actually being carried out. I'll have to figure out what I want to do about the subscription business - knowing that I received n responses for n subscribers. Using ISubscriptionStorage it works great, however I agree it does feel a bit dirty...
On Thu, Jan 29, 2009 at 11:58 AM, Ayende Rahien <[email protected]> wrote: > Yes, you can. > Buy BizTalk > > On Thu, Jan 29, 2009 at 2:48 PM, Matt Burton <[email protected]> wrote: >> >> Crap - that's too simple - can't we make it more complicated? :) >> >> Thanks for the clarification - most appreciated. >> >> On Thu, Jan 29, 2009 at 11:43 AM, Ayende Rahien <[email protected]> wrote: >> > The way it works. >> > P1 - publisher of Msg1 >> > S1 - S3 - Subscribers to Ms1 >> > >> > S1 starts up, it sends an AddSubscription request to P1 >> > P1 publish a Msg1 msg. So it sends it to S1 >> > S2 starts up, it sends an AddSubscription request to P1 >> > >> > P1 publish a Msg1 msg. So it sends it to S1,S2 >> > >> > On Thu, Jan 29, 2009 at 2:39 PM, Matt Burton <[email protected]> >> > wrote: >> >> >> >> 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 -~----------~----~----~----~------~----~------~--~---
