AMQP-283/284 Upgrade to RabbitMQ 3.0.0; AMQP-287 ConnectionTimeout #78

Closed
wants to merge 5 commits into
from

Projects

None yet

2 participants

@garyrussell
Member

AMQP-283 Upgrade Rabbit Client to 3.0.0.

AMQP-284 Deprecate immediate (publish) flag, Deprecate Federated Exchanges.

Exchange Federation is no longer configured using
exchange declaration.

Federation: Pre 3.0
Configuration lives in the configuration file.
You must ensure all nodes in a cluster have the same configuration.
The broker must be restarted for changes to take effect.
Federated exchanges are of a special type, and must be declared as such by AMQP clients.

Federation: 3.0
Configuration is stored in the broker database, manipulated with rabbitmqctl or the management plugin.
All nodes in a cluster automatically have the same configuration.
Changes to federation take effect immediately.
Federated exchanges are transparent to clients; exchanges can become federated at any time.

AMQP-287 Add Configurable Consumer Start Timeout

See https://jira.springsource.org/browse/AMQP-287

Allow the configuration of an increased timeout for when
SYN packets are dropped.

garyrussell added some commits Nov 27, 2012
@garyrussell garyrussell AMQP-283/284 Upgrade to RabbitMQ 3.0.0
AMQP-283 Upgrade Rabbit Client to 3.0.0.

AMQP-284 Deprecate immediate (publish) flag, Deprecate
Federated Exchanges.

Exchange Federation is no longer configured using
exchange declaration.

Federation: Pre 3.0
Configuration lives in the configuration file.
You must ensure all nodes in a cluster have the same configuration.
The broker must be restarted for changes to take effect.
Federated exchanges are of a special type, and must be declared as such by AMQP clients.

Federation: 3.0
Configuration is stored in the broker database, manipulated with rabbitmqctl or the management plugin.
All nodes in a cluster automatically have the same configuration.
Changes to federation take effect immediately.
Federated exchanges are transparent to clients; exchanges can become federated at any time.
7c2105a
@garyrussell garyrussell AMQP-287 Add Configurable Consumer Start Timeout
See https://jira.springsource.org/browse/AMQP-287

Allow the configuration of an increased timeout for when
SYN packets are dropped.
d80fb35
@markfisher markfisher was assigned Jan 2, 2013
@markfisher markfisher commented on an outdated diff Jan 4, 2013
...ingframework/amqp/rabbit/config/spring-rabbit-1.2.xsd
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="fanout-exchange">
+ <xsd:annotation>
+ <xsd:documentation><![CDATA[
+ Creates a fanout exchange for producers to send messages to. Uses an existing exchange
+ with the same name if it exists on the broker, or declares a
+ new one. A fanout exhange routes messages
@markfisher
markfisher Jan 4, 2013 Member

typo here ("exhange") - probably exists in the original this was copied from as well

@markfisher markfisher commented on an outdated diff Jan 4, 2013
...ingframework/amqp/rabbit/config/spring-rabbit-1.2.xsd
+ ]]></xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="federated-exchange">
+ <xsd:annotation>
+ <xsd:documentation><![CDATA[
+ DEPRECATED - RabbitMQ no longer supports 'x-federation' exchanges; exhange federation
@markfisher
markfisher Jan 4, 2013 Member

typo here ("exhange")

@markfisher markfisher commented on an outdated diff Jan 4, 2013
...ingframework/amqp/rabbit/config/spring-rabbit-1.2.xsd
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="topic-bindings" minOccurs="0" maxOccurs="1">
+ <xsd:annotation>
+ <xsd:documentation><![CDATA[
+ Groups bindings of queues to this exchange.
+ ]]></xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:choice>
+ <xsd:element name="binding" maxOccurs="unbounded" type="topicBindingType">
+ <xsd:annotation>
+ <xsd:documentation><![CDATA[
+ Declares a binding of a queue to this exchange either with
@markfisher
markfisher Jan 4, 2013 Member

"either" seems out of place here (or else something is missing after the routing pattern examples)

@markfisher markfisher commented on an outdated diff Jan 4, 2013
...ingframework/amqp/rabbit/config/spring-rabbit-1.2.xsd
+ Binds a queue to this exchange. Messages sent to this exchange will be
+ placed on this queue by the broker if they contain a header that matches
+ this binding (key-value pair).
+ ]]></xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:sequence>
+ <xsd:attribute name="backing-type" use="optional" type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation><![CDATA[
+ The type of the exchange used as a backing exchange for the
+ federated exhange.
@markfisher
markfisher Jan 4, 2013 Member

typo: "exhange"

@markfisher markfisher commented on an outdated diff Jan 4, 2013
...ingframework/amqp/rabbit/config/spring-rabbit-1.2.xsd
+ <xsd:documentation><![CDATA[
+ The routing key to send along with a response message.
+ This will be applied in case of a request message that does not carry
+ a "replyTo" property. Note: This only applies to a listener method with
+ a return value, for which each result object will be converted into a
+ response message.
+ ]]></xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:complexType>
+
+ <xsd:element name="admin">
+ <xsd:annotation>
+ <xsd:documentation><![CDATA[
+ Creates a rabbit admin (org.springframework.amqp.rabbit.core.RabbitAdmin)
+ for customers to manage exchanges, queues and bindings.
@markfisher
markfisher Jan 4, 2013 Member

"customers"?

@markfisher markfisher commented on an outdated diff Jan 4, 2013
...ingframework/amqp/rabbit/config/spring-rabbit-1.2.xsd
+ <xsd:documentation><![CDATA[
+ Timeout for send and receive in milliseconds. Default is 5000 (5 seconds).
+ ]]></xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="channel-transacted" type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation><![CDATA[
+ Flag to indicate that the channel should be used transactionally. Default is false.
+ ]]></xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="encoding" type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation><![CDATA[
+ Encoding to use for packing and unpacking MessagePoperties of type String. Default is UTF-8.
@markfisher
markfisher Jan 4, 2013 Member

typo: "...Poperties"

@markfisher markfisher commented on an outdated diff Jan 4, 2013
...ingframework/amqp/rabbit/config/spring-rabbit-1.2.xsd
+ <tool:expected-type type="java.util.concurrent.Executor" />
+ </tool:annotation>
+ </xsd:appinfo>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="publisher-confirms" type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation><![CDATA[
+ When true, channels on connections created by this factory support publisher confirms.
+ ]]></xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="publisher-returns" type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation><![CDATA[
+ When true, channels on connections created by this factory support publisher confirms.
@markfisher
markfisher Jan 4, 2013 Member

should this be "returns" rather than "confirms" here?

garyrussell added some commits Jan 4, 2013
@garyrussell garyrussell Revert "AMQP-287 Add Configurable Consumer Start Timeout"
This reverts commit d80fb35.
a85f80f
@garyrussell garyrussell AMQP-283 Fix Typos in Schema Docs
PR Review
0de79a6
@garyrussell garyrussell AMQP-287 Slow Startup is No Longer Fatal
Previously, if the consumer failed to start within 60 seconds
it was considered fatal. If the server is down and the network
is configured to take more than 60 seconds to report dropped
SYN (socket open) packets, the context would fail to initialize.

This is not consistent with, say, when the server is up but the
broker is down. In that case, the connection failure is detected
immediately, and the consumer starts attempting to reconnect - it
is NOT considered a fatal exception.

This change removes the fatal exception thrown when the consumer
fails to start in the 60 seconds (while still waiting for up to
60 seconds to see if a real fatal exception occurred).

Note that a real fatal exception (such as failure to declare the
queue(s) passively) will still cause the context to fail to initialize,
if it occurs within 60 seconds of the consumer starting.
bca23ef
@garyrussell
Member

Pushed typo fixes; reverted previous 287 changes; pushed revised version which now simply does not treat a failure to start in 60 seconds as being fatal.

When squashing, we can remove the previous 287 comments.

@markfisher
Member

LGTM; merged.

@markfisher markfisher closed this Jan 4, 2013
@garyrussell garyrussell deleted the garyrussell:AMQP-287 branch Dec 13, 2013
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment