Thanks for the clarifications, much appreciated. On Fri, Apr 3, 2009 at 00:10, Ayende Rahien <[email protected]> wrote:
> 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 -~----------~----~----~----~------~----~------~--~---
