You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Austin Cawley-Edwards (Jira)" <ji...@apache.org> on 2020/05/11 22:34:00 UTC

[jira] [Comment Edited] (FLINK-7267) Add support for lists of hosts to connect

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

Austin Cawley-Edwards edited comment on FLINK-7267 at 5/11/20, 10:33 PM:
-------------------------------------------------------------------------

This seems like a reasonable feature to me. The only way to currently achieve this would be to override the open method for the source and completely re-implement it, which can be messy.

 

I think we could either:

A) create an `RMQSource#setupConnection` method, similar to `setupConnectionFactory`. The connection only assigned in the `open` method, so I don't think it would be easy to introduce accidental errors in many places. This would allow users to make other changes to the connection by just overriding that method.

 

B) wrap the RMQ package's Address class and add a list of them to be passed as an option to the `RMQConnectionConfig`, which could be used in the `RMQSource#setupConnectionFactory`.

 

 

I think option A would be best, as it is a minimal change and would open up the possibility of extending the connection in user code (ex: [adding address resolution|https://www.rabbitmq.com/api-guide.html#service-discovery-with-address-resolver]). [~aljoscha] [~senegalo] - what do you think? Is this change worthwhile?

 

Side-note, should this conversation happen on the dev mailing list?


was (Author: austince):
This seems like a reasonable feature to me. The only way to currently achieve this would be to override the open method for the source and completely re-implement it, which can be messy.

 

I think we could either:

A) create an `RMQSource#setupConnection` method, similar to `setupConnectionFactory`. The connection only assigned in the `open` method, so I don't think it would be easy to introduce accidental errors in many places. This would allow users to make other changes to the connection by just overriding that method.

 

B) wrap the RMQ package's Address class and add a list of them to be passed as an option to the `RMQConnectionConfig`, which could be used in the `RMQSource#setupConnectionFactory`.

 

 

I think option A would be best, as it is a minimal change and would open up the possibility of extending the connection in user code. [~aljoscha] [~senegalo] - what do you think? Is this change worthwhile?

 

Side-note, should this conversation happen on the dev mailing list?

> Add support for lists of hosts to connect
> -----------------------------------------
>
>                 Key: FLINK-7267
>                 URL: https://issues.apache.org/jira/browse/FLINK-7267
>             Project: Flink
>          Issue Type: Improvement
>          Components: Connectors/ RabbitMQ
>    Affects Versions: 1.3.0
>            Reporter: Hu Hailin
>            Priority: Minor
>
> The RMQConnectionConfig can assign one host:port only. I want to connect to a cluster with an available node.
> My workaround is write my own sink extending RMQSink and override open(), assigning the nodes list in it.
> {code:java}
>       connection = factory.newConnection(addrs)
> {code}
> I still need to build the RMQConnectionConfig with a dummy host:port or a node in list. It's annoying.
> I think it is better to provide a configuration for it.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)