Every subscriber needs to know the endpoints it subscribe to.The other alternative is to place the subscription information in some sort of a shared location. And yes, it is expected that Orders.Messages publishers will be at test_queue
On Thu, Apr 2, 2009 at 6:03 PM, Simone Busoli <[email protected]>wrote: > 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 -~----------~----~----~----~------~----~------~--~---
