Sure Srinath. However, prior to committing, there are a few concerns with
the approach which I think should be considered: most importantly, how we
should resolve the hostname/IP of the Thrift server. Currently, the Thrift
server is set to listen to all interfaces for incoming connections
(0.0.0.0), whether valid or not. This is to overcome the earlier issues
we've had where the Thrift server would bind to the first Network interface
it found.

On the server side, we will need to initialize the service discovery to a
specific network interface which is also capable of accepting Thrift
connections. The issue is that it's not possible to always guarantee that
this interface is reachable from outside the local machine or LAN. For
instance, the IP that we've bound to the multicast service could be from a
virtual network interface. Normally, within a single node, this will not
pose an issue, but overcoming this issue in a multi-node environment will
mean maintaining a configuration which points to the correct IP which could
accept incoming Thrift connections from outside the node (since we can't
infer this information from the Thrift server, as it's already bound to ALL
interfaces). This of course will negate our goal of zero configuration.

The alternative is to let the analytics (server) node provide the list of
ALL its network interfaces to the client and the client then going through
them one by one to try and create a socket connection, to see if one or
more them is accepting Thrift connections. This is not desirable due to
obvious reasons.

How shall we proceed?

Thanks,

On 30 June 2016 at 08:52, Srinath Perera <srin...@wso2.com> wrote:

> Thanks, sound good. Please do ASAP. We are at beta, so too late even now.
>
> --Srinath
>
> On Thu, Jun 30, 2016 at 8:09 AM, Gokul Balakrishnan <go...@wso2.com>
> wrote:
>
>> Hi Srinath,
>>
>> As per our offline chat earlier, the initial plan is to locate the Thrift
>> endpoint  through mDNS service discovery, considering the host and port
>> first.
>>
>> I have used the JmDNS library pointed by Nirmal to do a PoC on this
>> scenario, and I've also already incorporated the logic into the databridge
>> Thrift server to enable service registration through a system property the
>> users could set (-DenableDiscovery). The corresponding client code goes
>> into the publisher OSGi service initialisation. This too is controllable by
>> the same system property the user could set on the Thrift client (which
>> will be the product talking to DAS/CEP).
>>
>> I'm doing some testing on the entire scenario, and once completed, I'll
>> commit the changes into the relevant repos and send an update to this
>> thread.
>>
>> Thanks,
>>
>>
>> On Thursday, 30 June 2016, Srinath Perera <srin...@wso2.com> wrote:
>>
>>> Resending as it hits a filter rule.
>>>
>>> Gokul, please give an update on this?
>>>
>>> --Srinath
>>>
>>
>>
>> --
>> Gokul Balakrishnan
>> Senior Software Engineer,
>> WSO2, Inc. http://wso2.com
>> M +94 77 5935 789 | +44 7563 570502
>>
>>
>>
>
>
> --
> ============================
> Srinath Perera, Ph.D.
>    http://people.apache.org/~hemapani/
>    http://srinathsview.blogspot.com/
>



-- 
Gokul Balakrishnan
Senior Software Engineer,
WSO2, Inc. http://wso2.com
M +94 77 5935 789 | +44 7563 570502
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to