Edgardo,

You'd run into a lot of problems trying to use that solution, as many 
attributes contain
characters that are not valid in HTTP headers, and HTTP Headers are delineated 
with
new-lines, so if you have an attribute with new-lines you'll get really weird 
results.

-Mark


> On Jun 7, 2016, at 3:52 PM, Edgardo Vega <[email protected]> wrote:
> 
> Mark,
> 
> Amazon only supports sticky session via cookies.
> 
> Disabling the two-phase commit would be really nice
> 
> What if you do a invokehttp with send all the attributes as Http headers
> and on the receive side on listenhttp do a .* to turn all the headers back
> into attribute? Would that work?
> 
> Cheers,
> 
> Edgardo
> 
> On Tue, Jun 7, 2016 at 3:19 PM, Mark Payne <[email protected]> wrote:
> 
>> The idea behind the DELETE mechanism is that in some environments there
>> were timeouts
>> that would occur quite frequently between PostHTTP / ListenHTTP and this
>> resulted in quite
>> a lot of data duplication. By adding in the two-phase commit, we were able
>> to drastically reduce
>> the amount of data duplication, as a timeout anywhere in the first
>> (typically MUCH longer) phase
>> would result in the data on the receiving side being dropped because the
>> receiving side would
>> not delete the hold that it placed on the FlowFiles.
>> 
>> It would be reasonable to add an option for PostHTTP so that it requests
>> not to perform a two-phase
>> commit. Alternatively, you could use either PostHTTP with 'Send as
>> FlowFile' set to 'false' or you
>> could use InvokeHTTP. These do not send the attributes, though, so you
>> would need to precede this
>> with a MergeContent with Merge Format of "FlowFile Stream, v3".
>> Then, on the receiving side, you could use UnpackContent to unpack these
>> FlowFile Packages back
>> into their 'native' form.
>> 
>> Or, a simpler option, if Amazon's ELB supports it, is to configure the ELB
>> such that HTTP Requests that
>> contain the same value for the "x-nifi-transaction-id" header will go to
>> the same node. This
>> header was added specifically to allow for this functionality through Load
>> Balancers,
>> but I don't know if ELB specifically supports this or not.
>> 
>> Thanks
>> -Mark
>> 
>> 
>>> On Jun 7, 2016, at 2:16 PM, Aldrin Piri <[email protected]> wrote:
>>> 
>>> InvokeHTTP may be the better option if the user is not interested in
>>> transmitting content _packaged as_ FlowFiles.  Someone with a bit more
>>> history than myself can provide some additional context if I have strayed
>>> off the path, but PostHTTP and ListenHTTP were precursors to Site to
>> Site.
>>> While they can transmit arbitrary content, were created for this
>>> inter-instance communication to aid in the guaranteed delivery semantics.
>>> The listed hold, in this case, is part of that transaction occurring
>> where
>>> a response is returned to acknowledge receipt via ListenHTTP [1] and the
>>> ContentAcknowledgementServlet [2].
>>> 
>>> [1]
>>> 
>> https://github.com/apache/nifi/blob/1bd2cf0d09a7111bcecffd0f473aa71c25a69845/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListenHTTP.java
>>> [2]
>>> 
>> https://github.com/apache/nifi/blob/1bd2cf0d09a7111bcecffd0f473aa71c25a69845/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/servlets/ContentAcknowledgmentServlet.java
>>> 
>>> On Tue, Jun 7, 2016 at 2:10 PM, Bryan Bende <[email protected]> wrote:
>>> 
>>>> Looks like PostHttp interprets the response, and based on a series of
>>>> conditions can intentionally issue a delete.
>>>> 
>>>> I can't fully understand what is happening, but the code is here:
>>>> 
>>>> 
>> https://github.com/apache/nifi/blob/1bd2cf0d09a7111bcecffd0f473aa71c25a69845/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PostHTTP.java#L754
>>>> 
>>>> Unless someone understands what is happening there, maybe InvokeHttp
>> could
>>>> be used to make the post instead?
>>>> 
>>>> -Bryan
>>>> 
>>>> 
>>>> On Tue, Jun 7, 2016 at 1:53 PM, Edgardo Vega <[email protected]>
>>>> wrote:
>>>> 
>>>>> Joe,
>>>>> 
>>>>> We were testing with another nifi machine outside the elb to post a
>>>>> flowfile in using the PostHttp processor. It seems that on each post
>>>> there
>>>>> is an immediate delete call. Behind the load balancer it goes haywire.
>>>>> 
>>>>> Cheers,,
>>>>> 
>>>>> Edgardo
>>>>> 
>>>>> On Tue, Jun 7, 2016 at 8:40 AM, Joe Witt <[email protected]> wrote:
>>>>> 
>>>>>> Edgardo
>>>>>> 
>>>>>> Are you saying the clients are posting and then calling delete?
>>>>>> 
>>>>>> Also the more complex but flexible options are handle http request and
>>>>>> response.
>>>>>> 
>>>>>> Thanks
>>>>>> Joe
>>>>>> On Jun 7, 2016 7:04 AM, "Edgardo Vega" <[email protected]>
>> wrote:
>>>>>> 
>>>>>>> I wanted to throw Nifi behind a AWS ELB. I then have the ELB pointing
>>>>> at
>>>>>>> the nifi cluster. On the cluster I have a ListenHttp. I want to allow
>>>>>>> people to post flow files to that url.
>>>>>>> 
>>>>>>> When testing this setup, it seems I am getting an error due to the
>>>> fact
>>>>>> it
>>>>>>> seems like first there is a post and then a delete to confirm that it
>>>>> was
>>>>>>> posted. How do I get Nifi to stop doing that? I just want nifi to
>>>> post
>>>>>> and
>>>>>>> if its get something larger than a 400 fail otherwise succeed.
>>>>>>> 
>>>>>>> 
>>>>>>> --
>>>>>>> Cheers,
>>>>>>> 
>>>>>>> Edgardo
>>>>>>> 
>>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> --
>>>>> Cheers,
>>>>> 
>>>>> Edgardo
>>>>> 
>>>> 
>> 
>> 
> 
> 
> -- 
> Cheers,
> 
> Edgardo

Reply via email to