shardingsphere-plugin icon indicating copy to clipboard operation
shardingsphere-plugin copied to clipboard

Replaces `com.ecwid.consul:consul-api` with `io.vertx:vertx-consul-client` in `shardingsphere-plugin-mode-cluster-repository-consul`

Open linghengqian opened this issue 2 years ago • 4 comments

Feature Request

For English only, other languages will not be accepted.

Please pay attention on issues you submitted, because we maybe need more details. If no response anymore and we cannot make decision by current information, we will close it.

Please answer these questions before submitting your issue. Thanks!

Is your feature request related to a problem?

  • Yes, refer to apache/shardingsphere#29588 and apache/shardingsphere#29052 .

Describe the feature you would like.

  • com.ecwid.consul:consul-api has not released a new version for 4 years, which has led to issues like https://github.com/Ecwid/consul-api/issues/246 and was released in Consul 1.17 .x will be completely unavailable. Issues like https://github.com/spring-cloud/spring-cloud-consul/issues/475 are actively being moved away from com.ecwid.consul:consul-api.

  • Issues like https://github.com/Ecwid/consul-api/issues/19 expose that com.ecwid.consul:consul-api does not encapsulate the watches API at all, refer to https://developer.hashicorp.com/consul/docs/v1.17.x/dynamic-app-config/watches . This resulted in shardingsphere-plugin-mode-cluster-repository-consul even operating the index manually, which caused a lot of confusion in further maintenance.

  • According to an investigation at https://github.com/apache/shardingsphere/pull/29588 , the Consul integration is currently unavailable, again requiring further investigation.

  • This issue target is handling two subtasks.

    • [ ] Replaces com.ecwid.consul:consul-api with com.orbitz.consul:consul-client.

      • Although com.orbitz.consul:consul-client has been archived, its last release is later than com.ecwid.consul:consul-api. It also provides an encapsulation of the watches interface, simplifying the use of Consul Index handling, which helps align the operations of existing Zookeeper integration implementations in ShardingSphere.
      • Although there is a community branch as org.kiwiproject:consul-client, there is nothing that can be done about ShardingSphere considering that https://github.com/kiwiproject/consul-client/pull/39 improves the JDK compiled version to JDK11.
    • [ ] Replaces com.orbitz.consul:consul-client with io.vertx:vertx-consul-client. io.vertx:vertx-consul-client is the only Java Client for Consul currently being maintained. I don't think we should actively encapsulate HttpClient, this kind of thing should be done by a third party.

linghengqian avatar Jan 06 '24 15:01 linghengqian

There hasn't been any activity on this issue recently, and in order to prioritize active issues, it will be marked as stale.

github-actions[bot] avatar Feb 14 '24 20:02 github-actions[bot]

  • The current issue is unlikely to be completed before the 5.5.0 release. Consul's integrated wacth() function implementation is broken for unknown reasons.

linghengqian avatar Feb 22 '24 14:02 linghengqian

  • Due to the impact of https://github.com/apache/shardingsphere/pull/30288 , this issue is moved to plugin git.

linghengqian avatar Feb 28 '24 05:02 linghengqian

  • I will put the current question on hold as I don't want to spend effort on Consul under Business Source License 1.1. This is for personal reasons.
  • If anyone is willing to submit a PR to fix the current issue, I will still assist in reviewing and merging.

linghengqian avatar Aug 31 '24 12:08 linghengqian