Fine, my question is about the bus/endpoint attribute. Does every subscriber need that? Should it have the same value among all subscribers? Is that the same of the publisher? I know I'm probably missing some basic concepts.Given the example you shown, is a publisher which publishes messages in category Orders.Messages supposed to have msmq://localhost/test_queue as its bus/endpoint?
On Thu, Apr 2, 2009 at 23:57, Ayende Rahien <[email protected]> wrote: > each subscriber should have the publisher register in their config. > > <castle> > > <facilities> > > <facility id="rhino.esb" > > > <bus threadCount="1" > > numberOfRetries="5" > > endpoint="msmq://localhost/test_queue3" > > /> > > <messages> > > <add name="Orders.Messages" > > endpoint="msmq://localhost/test_queue"/> > > <add name="Shipping.Messages" > > endpoint="msmq://localhost/test_queue2"/> > > </messages> > > </facility> > > </facilities> > > </castle> > > In this case, this subscriber is going to subscribe to Order.Messages > events on test_queue and Shipping.Messages on test_queue2 > If you have any ConsumerOf<T> where T is in any of Orders.Messages or > Shipping.Messages, you will get the message when the message is being fired. > > On Thu, Apr 2, 2009 at 5:51 PM, Simone Busoli <[email protected]>wrote: > >> So, let's say I have one publisher and two subscribers. How are the three >> supposed to be configured in order for both subscribers to receive a message >> when the published publishes it?I'm just talking about the bus/endpoint >> attribute and messages configuration section. >> >> On Thu, Apr 2, 2009 at 23:36, Ayende Rahien <[email protected]> wrote: >> >>> Can you restart the problem? I am not sure that I understand.If you need >>> subscribers, you need to just have the endpoint which publish the message. >>> Anything else is not necessary, it will auto subscribe and respond to >>> messages after that. >>> >>> >>> On Thu, Mar 26, 2009 at 11:04 AM, Simone Busoli <[email protected] >>> > wrote: >>> >>>> Late on this thread, but I'm trying RSB right now on a project >>>> and setting up a pub/sub scenario. I'm not sure I understand how multiple >>>> subscribers are identified, I have, say, two subscribers that only need to >>>> receive messages, and I gave them the same configuration file. From >>>> what I can see, giving them the same endpoint uri entails that they are all >>>> the same instance, therefore when a message is published only one of them >>>> receives it. >>>> On the other hand, I can see that if every subscriber has a different >>>> endpoint everything works correctly. >>>> My issue with that is that I'll need several subscribers, whose code and >>>> configuration is taken from a build server, which outputs a single >>>> configuration file, which, along all the other stuff gets deployed on >>>> production machines. >>>> As far as I can see this prevents me from using the xml configuration to >>>> set up the facility and instead add it to the container during the startup >>>> of the application with an endpoint supplied programmatically based on, for >>>> example, the name of the machine. >>>> Any ideas? >>>> >>>> On Thu, Jan 29, 2009 at 21:07, Matt Burton <[email protected]>wrote: >>>> >>>>> >>>>> 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 -~----------~----~----~----~------~----~------~--~---
