[ 
https://issues.apache.org/jira/browse/NIFI-3193?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16065392#comment-16065392
 ] 

Michael Hogue edited comment on NIFI-3193 at 6/27/17 8:04 PM:
--------------------------------------------------------------

[~bdeep] : A couple of things. In thinking about your feature request to go 
ahead and declare a queue if it doesn't exist, that's only possible for NiFi to 
do if you're not using exchanges (i.e. you're just using the default exchange). 
The reason is that RabbitMQ maintains a mapping of <RoutingKey, Queue> which 
the exchanges leverage to route messages to the appropriate queue. In that 
case, NiFi would have no knowledge of which queue the message would be routed 
to.

Per one of the RabbitMQ docs [1], in the case that the exchange provided is 
empty, then the routing key is assumed to be the queue name. In that case, we 
could declare it if it doesn't exist. The issue is that there are a number of 
arguments in queue declaration that i feel would need to be explicit (See 
Queues in [1]). Perhaps it'd be better if the queue declaration were left to 
RabbitMQ admins? Or maybe just have sensible defaults? Thoughts?

> For example, when you declare a queue with the name of 
> "search-indexing-online", the AMQP 0-9-1 broker will bind it to the default 
> exchange using "search-indexing-online" as the routing key. Therefore, a 
> message published to the default exchange with the routing key 
> "search-indexing-online" will be routed to the queue 
> "search-indexing-online". In other words, the default exchange makes it seem 
> like it is possible to deliver messages directly to queues, even though that 
> is not technically what is happening.

[1] https://www.rabbitmq.com/tutorials/amqp-concepts.html -- See 'Default 
Exchange', 'Queues'


was (Author: m-hogue):
[~bdeep] : A couple of things. In thinking about your feature request to go 
ahead and declare a queue if it doesn't exist, that's only possible for NiFi to 
do if you're not using exchanges (i.e. you're just using the default exchange). 
The reason is that RabbitMQ maintains a mapping of <RoutingKey, Queue> which 
the exchanges leverage to route messages to the appropriate queue. In that 
case, NiFi would have no knowledge of which queue the message would be routed 
to.

Per one of the RabbitMQ docs [1], in the case that the exchange provided is 
empty, then the routing key is assumed to be the queue name. In that case, we 
could declare it if it doesn't exist. The issue is that there are a number of 
arguments in queue declaration that i feel would need to be explicit (See 
Queues in [1]). Perhaps it'd be better if the queue declaration were left to 
RabbitMQ admins? Thoughts?

> For example, when you declare a queue with the name of 
> "search-indexing-online", the AMQP 0-9-1 broker will bind it to the default 
> exchange using "search-indexing-online" as the routing key. Therefore, a 
> message published to the default exchange with the routing key 
> "search-indexing-online" will be routed to the queue 
> "search-indexing-online". In other words, the default exchange makes it seem 
> like it is possible to deliver messages directly to queues, even though that 
> is not technically what is happening.

[1] https://www.rabbitmq.com/tutorials/amqp-concepts.html -- See 'Default 
Exchange', 'Queues'

> Update ConsumeAMQP and PublishAMQP to retrieve username from certificate 
> common name
> ------------------------------------------------------------------------------------
>
>                 Key: NIFI-3193
>                 URL: https://issues.apache.org/jira/browse/NIFI-3193
>             Project: Apache NiFi
>          Issue Type: New Feature
>          Components: Extensions
>    Affects Versions: 1.0.0, 1.1.0, 0.7.1
>            Reporter: Brian
>            Assignee: Michael Hogue
>
> At the moment the NiFi AMQP processors can establish a SSL connection to 
> RabbitMQ but still user a user defined username and password to authenticate. 
> When using certificates RabbitMQ allows you to use to COMMON_NAME from the 
> certificate to authenticate instead of providing a username and password. 
> Unfortunately the NiFi processors do not support this so I would like to 
> request an update to the processors to enable this functionality.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to