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
-~----------~----~----~----~------~----~------~--~---