Hi Kyle,

the Java Broker uses a number of different ports, depending on which
plugins are enabled.  If I remember correctly there are some ports which
can be bound to only certain interfaces, but others (HTTP and JMX
management) which we cannot so restrict. As well as port conflicts you are
going to want to ensure that if you are running multiple broker instances
on the same server, each has its own locations for config files, password
files, etc.

The Java Broker stores all its configuration in a config file
${qpid.work_dir}/config.json (where ${qpid.work_dir} is the user's home
directory by default).  The initial broker config is taken from a template
inside the broker binaries and ultimately from static defaults (for things
like the HTTP management port being 8080).

The following sections of the documentation are probably useful here:

http://qpid.apache.org/releases/qpid-0.22/java-broker/book/Java-Broker-Getting-Started-CommandLine.html
http://qpid.apache.org/releases/qpid-0.22/java-broker/book/Java-Broker-Configuring-And-Managing.html#Java-Broker-Configuring-And-Managing-Configuration-Store

Using the above you should be able to see how you can create configurations
so that you avoid port number clashes.

For binding on the same port, this is possible for the AMQP port, but not
for management (JMX or HTTP)... So you'd either need to disable these
plugins (and have no easy way to manage your broker) or have different
ports for each interface.

For the AMQP port you need to set the bindingAddress parameter for the
port, e.g.:

{
    "authenticationProvider" : "passwordFile",
    "bindingAddress" : "192.168.105.83",
    "id" : "7236a3e5-9e74-440b-888b-2fdfcbe21695",
    "name" : "AMQP",
    "port" : 5672
  }

is how that section looks in my config file right now on one broker I'm
running, while the other broker instance had a different bindingAddress.

I'm aware of people who are doing similar things for PaaS type
infrastructures who basically use a template initial config and then write
out different concrete values for the ports/etc for the initial config file
to be used for each new instance of a broker that is created.  After you'd
run your script to genearte the template for the new instance, you'd then
start up the broker with the --initial-config-path option to point at your
newly generated template. You might also want to consider other aspects
you's want in your initial config (such as authentication mechanisms, etc.).

I'm not sure whether there's any way we can fix the HTTP or JMX ports in
future ... possibly more of a chance with the HTTP management... but I'd
need to look into how jetty does its binding.

Hope this helps,
Rob


(As an aside: one enhancement here that would be really useful for these
PaaS scenarios (and I know someone raised a JIRA for it previously) is to
have some sort of mDNS registration in the broker so that a new instance's
ports could be resolved by name rather than having to add a separate
mechanism to propogoate the port numbers in use by an instance to clients
which wish to connect... however that doesn't exist yet).




On 19 December 2013 22:18, Ted Ross <tr...@redhat.com> wrote:

> Sorry Kyle,
>
> Gordon and I are giving you information about the C++ broker, not the Java
> broker.  I will need to defer to one of the Java broker folks to answer for
> that component.
>
> -Ted
>
>
> On 12/19/2013 04:03 PM, Kyle Crumpton (kcrumpto) wrote:
>
>> Hi Ted. I am using version 0.22. I actually got qpid from tar:
>> qpid-java-broker-0.22.tar.gz
>>
>> On 12/19/13 3:00 PM, "Ted Ross" <tr...@redhat.com> wrote:
>>
>>  Kyle,
>>>
>>> That feature was added in release 0.20
>>> (https://issues.apache.org/jira/browse/QPID-3351).  You may be using an
>>> older version.
>>>
>>> -Ted
>>>
>>> On 12/19/2013 03:15 PM, Kyle Crumpton (kcrumpto) wrote:
>>>
>>>> Hi. I did this and I got the error: Unrecognized option: --interface
>>>>
>>>> On 12/19/13 12:59 PM, "Gordon Sim" <g...@redhat.com> wrote:
>>>>
>>>>  On 12/19/2013 06:45 PM, Kyle Crumpton (kcrumpto) wrote:
>>>>>
>>>>>> I am just curious if there is a way to bind qpid to an IP such as
>>>>>> 127.1.244.129
>>>>>>
>>>>>> The reason I ask is I'm looking to deploy many instances to a PaaS and
>>>>>> will need multiple running instances. This is not possible if
>>>>>> everything
>>>>>> tries to bind to localhost:8080.
>>>>>>
>>>>>> Does anyone know of a way to configure this? I could not find in the
>>>>>> qpid documentation.
>>>>>>
>>>>> Yes, you can use --interface to restrict the interfaces qpidd will bind
>>>>> on.
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
>>>>> For additional commands, e-mail: dev-h...@qpid.apache.org
>>>>>
>>>>>  ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
>>>> For additional commands, e-mail: dev-h...@qpid.apache.org
>>>>
>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
>>> For additional commands, e-mail: dev-h...@qpid.apache.org
>>>
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
>> For additional commands, e-mail: dev-h...@qpid.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
> For additional commands, e-mail: dev-h...@qpid.apache.org
>
>

Reply via email to