You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2011/06/16 23:44:15 UTC
svn commit: r1136694 - in /activemq/activemq-apollo/trunk:
apollo-dto/src/main/java/org/apache/activemq/apollo/dto/QueueDTO.java
apollo-website/src/documentation/architecture.md
apollo-website/src/documentation/user-manual.md apollo-website/src/index.page
Author: chirino
Date: Thu Jun 16 21:44:15 2011
New Revision: 1136694
URL: http://svn.apache.org/viewvc?rev=1136694&view=rev
Log:
Doc improvements.
Modified:
activemq/activemq-apollo/trunk/apollo-dto/src/main/java/org/apache/activemq/apollo/dto/QueueDTO.java
activemq/activemq-apollo/trunk/apollo-website/src/documentation/architecture.md
activemq/activemq-apollo/trunk/apollo-website/src/documentation/user-manual.md
activemq/activemq-apollo/trunk/apollo-website/src/index.page
Modified: activemq/activemq-apollo/trunk/apollo-dto/src/main/java/org/apache/activemq/apollo/dto/QueueDTO.java
URL: http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-dto/src/main/java/org/apache/activemq/apollo/dto/QueueDTO.java?rev=1136694&r1=1136693&r2=1136694&view=diff
==============================================================================
--- activemq/activemq-apollo/trunk/apollo-dto/src/main/java/org/apache/activemq/apollo/dto/QueueDTO.java (original)
+++ activemq/activemq-apollo/trunk/apollo-dto/src/main/java/org/apache/activemq/apollo/dto/QueueDTO.java Thu Jun 16 21:44:15 2011
@@ -54,7 +54,7 @@ public class QueueDTO extends StringIdDT
public Integer queue_buffer;
/**
- * The amount of memory buffer space to use per subscription.
+ * The amount of memory buffer space to use per consumer.
*/
@XmlAttribute(name="consumer_buffer")
public Integer consumer_buffer;
@@ -74,7 +74,7 @@ public class QueueDTO extends StringIdDT
/**
* The number max number of swapped queue entries to load
- * from the store at a time. Not that swapped entries are just
+ * from the store at a time. Note that swapped entries are just
* reference pointers to the actual messages. When not loaded,
* the batch is referenced as sequence range to conserve memory.
*/
Modified: activemq/activemq-apollo/trunk/apollo-website/src/documentation/architecture.md
URL: http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-website/src/documentation/architecture.md?rev=1136694&r1=1136693&r2=1136694&view=diff
==============================================================================
--- activemq/activemq-apollo/trunk/apollo-website/src/documentation/architecture.md (original)
+++ activemq/activemq-apollo/trunk/apollo-website/src/documentation/architecture.md Thu Jun 16 21:44:15 2011
@@ -99,3 +99,37 @@ services.
See the [Management API](management-api.html) documentation for
details.
+### Message Swapping
+
+Apollo can very efficiently work with both large and small queues due to
+the way it implements message swapping. If you have a large queue with
+millions of messages, and are slowly processing them, then it makes no
+sense to keep all those messages in memory. They just need to be loaded
+when the consumers are ready to receive them.
+
+A queue in apollo has a configuration entry called `consumer_buffer` which
+is the amount of memory dedicated to that consumer for prefetching into
+memory the next set of messages that consumer will need. The queue will
+asynchronously load messages from the message store so that they will be
+in memory by the time the consumer is ready to receive the the message.
+
+The rate of consumption/position of the consumers in the queue will also
+affect how newly enqueued messages are handled. If no consumers are near
+the tail of the queue where new messages are placed, then the message gets
+swapped out of memory asap. If they consumers are near the tail of the
+queue, then the message is retained in memory for as long as possible in
+hopes that you can avoid a swap out and then back in.
+
+When a message is swapped out of memory, it can be in one of 2 swapped out
+states: 'swapped' or 'swapped range'. A message in 'swapped' state still
+has a small reference node in the list of messages the queue maintains.
+This small reference holds onto some accounting information about the
+message and how to quickly retrieve the message from the message store.
+Once a queue builds up many adjacent messages (defaults to 10,000) that
+are in the 'swapped' state, it will replace all those individual reference
+node entires in memory with a single range reference node. Once that
+happens, the message is in a 'swapped range'.
+
+
+
+
Modified: activemq/activemq-apollo/trunk/apollo-website/src/documentation/user-manual.md
URL: http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-website/src/documentation/user-manual.md?rev=1136694&r1=1136693&r2=1136694&view=diff
==============================================================================
--- activemq/activemq-apollo/trunk/apollo-website/src/documentation/user-manual.md (original)
+++ activemq/activemq-apollo/trunk/apollo-website/src/documentation/user-manual.md Thu Jun 16 21:44:15 2011
@@ -49,9 +49,20 @@ following files.
* `etc/groups.properties` : Holds groups to users mappings so that you can
simplify access control lists (ACL) by using group instead listing individual
users.
-
+* `black-list.txt` : A list of IP address which are banned from connecting
+ to the broker.
+
[login.conf]: http://download.oracle.com/javase/1.5.0/docs/guide/security/jaas/tutorials/LoginConfigFile.html
+### Automatic Configuration Reloading
+
+Once a broker is started, you can edit any of the configuration files in
+the `etc` directory and your changes will be automatically be reloaded. The
+configuration update will be applied in the least non-disruptive way possible.
+For example, if you removed a connector, the port that connector was listening
+on will be released an no new connections will be accepted. But connections
+that were previously accepted by that connector will continue to operate normally.
+
### Adjusting JVM Settings
You can define the following environment variables in the `bin/apollo-broker`
@@ -72,6 +83,10 @@ unix script.
### Understanding the `apollo.xml` File
+There are many XSD aware XML editors which make editing XML configuration
+file less error prone. If your using one of these editors, you can
+configure it to use this [apollo.xsd](schema/apollo.xsd) file.
+
The simplest valid `apollo.xml` defines a single virtual host and a
single connector.
@@ -136,9 +151,8 @@ and port to determine to which local int
The TCP URI also supports several query parameters to fine tune the
settings used on the socket. The supported parameters are:
-* `receive_buffer_size` : Sets the size of the internal socket receive buffer
- and the size of the TCP receive window that is advertised to the remote
- peer. Defaults to 65536 (64k)
+* `buffer_size` : Sets the size of the internal socket send and
+ receive buffers. Defaults to 65536 (64k)
* `traffic_class` : Sets traffic class or type-of-service octet in the IP
header for packets sent from the transport. Defaults to `8` which
@@ -155,7 +169,7 @@ settings used on the socket. The suppor
Example which uses a couple of options:
{pygmentize:: xml}
-<connector id="tcp" bind="tcp://0.0.0.0:61613?receive_buffer_size=1024&max_read_rate=65536"/>
+<connector id="tcp" bind="tcp://0.0.0.0:61613?buffer_size=1024&max_read_rate=65536"/>
{pygmentize}
Note that `&` was used to separate the option values instead of just `&` since the
Modified: activemq/activemq-apollo/trunk/apollo-website/src/index.page
URL: http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-website/src/index.page?rev=1136694&r1=1136693&r2=1136694&view=diff
==============================================================================
--- activemq/activemq-apollo/trunk/apollo-website/src/index.page (original)
+++ activemq/activemq-apollo/trunk/apollo-website/src/index.page Thu Jun 16 21:44:15 2011
@@ -43,17 +43,17 @@ ActiveMQ 5.x JMS clients.
* [Queue Browsers](documentation/user-manual.html#Browsing_Subscriptions)
* [Durable Subscriptions on Topics](documentation/user-manual.html#Topic_Durable_Subscriptions)
* [Reliable Messaging](documentation/user-manual.html#Reliable_Messaging)
-* Message swapping
+* [Message Swapping](documentation/architecture.html#Message_Swapping)
* [Message Selectors](documentation/user-manual.html#Message_Selectors)
* [JAAS Authentication](documentation/user-manual.html#Authentication)
-* [ACL Authorization](documentation/user-manual.html#Authorization)
-* [SSL/TLS Support](documentation/user-manual.html#Using_SSL_TLS)
-* [REST Based Management](documentation/architecture.html#REST_Based_Management)
+* [ACL based Authorization](documentation/user-manual.html#Authorization)
+* [SSL/TLS Support](documentation/user-manual.html#Using_SSL_TLS) and Certificate based Authentication
+* [REST Management API](documentation/management-api.html)
+
## Documentation
* [Getting Started Guide](documentation/getting-started.html)
* [User Manual](documentation/user-manual.html)
- * [Management API](documentation/management-api.html)
-
+