You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by Gordon Sim <gs...@redhat.com> on 2013/03/11 11:18:11 UTC

Re: Review Request: Allow broker to initiate AMQP 1.0 connections (and links) to other entities


> On Feb. 18, 2013, 4:31 p.m., Alan Conway wrote:
> > How do you flow-control the interconnects without using store-and-forward? Is there a new flow control mechanism for 1.0?

For the relayed links, the credit issued by the downstream is passed back up to the upstream. (I need to go through the cases where credit is cancelled to make sure that is working correctly).


- Gordon


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/9469/#review16711
-----------------------------------------------------------


On Feb. 15, 2013, 6:13 p.m., Gordon Sim wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/9469/
> -----------------------------------------------------------
> 
> (Updated Feb. 15, 2013, 6:13 p.m.)
> 
> 
> Review request for qpid.
> 
> 
> Description
> -------
> 
> I.e. provide equivalent functionality as offered over AMQP 0-10 through the so called federation capabilities.
> 
> This patch, which is still a work in progress, does not simply reproduce the 0-10 capabilities over 1.0. It does not use the existing Bridge and Link objects. For one thing, the naming of those objects is confusing - wrong in fact - from a 1.0 perspective. The code is also quite tied into 0-10. Finally, I think there are aspects of the existing code that with the benefit of experience aren't ideal. My view was that leaving that code unaltered and adding equivalent functionality anew for 1.0 was the cleanest approach.
> 
> The current patch offers the following:
> 
> * Through management you can define 'domains'. These are essentially descriptions of some external entity to which a 1.0 connection can be made.
> 
> * Through management you can set up incoming or outgoing links to or from a domain. The source and target for the link can be specified. This allows you for example to pull messages off a queue on some other broker and have them routed through an exchange on the 'local broker.
> 
> * You can also establish 'relayed' links. If you open a link (either incoming or outgoing) to <name>@<domain>, an there is no queue or exchange matching that full address defined, then the broker will determine if the domain is one it knows about and if so it will establish a corresponding link to that domain. So for example if you send to my-queue@another-broker, then a link will be setup to my-queue on another-broker and all the messages you send over the original link will be relayed over that (by relayed I mean that this is not a store-and-forward approach where the broker we are connected to accepts the message and forwards it, but a simple proxying approach). You can also open a receiving link to my-queue@another-broker and pull messages off that remote queue via the broker you are connected to.
> 
> 
> This addresses bug QPID-4586.
>     https://issues.apache.org/jira/browse/QPID-4586
> 
> 
> Diffs
> -----
> 
>   /trunk/qpid/cpp/src/CMakeLists.txt 1446560 
>   /trunk/qpid/cpp/src/Makefile.am 1446560 
>   /trunk/qpid/cpp/src/amqp.cmake 1446560 
>   /trunk/qpid/cpp/src/qpid/broker/Broker.h 1446560 
>   /trunk/qpid/cpp/src/qpid/broker/Broker.cpp 1446560 
>   /trunk/qpid/cpp/src/qpid/broker/LossyQueue.cpp 1446560 
>   /trunk/qpid/cpp/src/qpid/broker/ObjectFactory.h PRE-CREATION 
>   /trunk/qpid/cpp/src/qpid/broker/ObjectFactory.cpp PRE-CREATION 
>   /trunk/qpid/cpp/src/qpid/broker/SecureConnectionFactory.h 1446560 
>   /trunk/qpid/cpp/src/qpid/broker/SecureConnectionFactory.cpp 1446560 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/Connection.h 1446560 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/Connection.cpp 1446560 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/Domain.h PRE-CREATION 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/Domain.cpp PRE-CREATION 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/Incoming.h PRE-CREATION 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/Incoming.cpp PRE-CREATION 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/Interconnect.h PRE-CREATION 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/Interconnect.cpp PRE-CREATION 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/Interconnects.h PRE-CREATION 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/Interconnects.cpp PRE-CREATION 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/ManagedIncomingLink.h PRE-CREATION 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/ManagedIncomingLink.cpp PRE-CREATION 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/ManagedOutgoingLink.h 1446560 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/ManagedOutgoingLink.cpp 1446560 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/Outgoing.h 1446560 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp 1446560 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/ProtocolPlugin.cpp 1446560 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/Relay.h PRE-CREATION 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/Relay.cpp PRE-CREATION 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/Sasl.h 1446560 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/Sasl.cpp 1446560 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/SaslClient.h PRE-CREATION 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/SaslClient.cpp PRE-CREATION 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/Session.h 1446560 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/Session.cpp 1446560 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/Translation.h 1446560 
>   /trunk/qpid/cpp/src/qpid/broker/amqp/Translation.cpp 1446560 
>   /trunk/qpid/specs/management-schema.xml 1446560 
> 
> Diff: https://reviews.apache.org/r/9469/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Gordon Sim
> 
>