Uploaded image for project: 'Nuxeo Platform'
  1. Nuxeo Platform
  2. NXP-25499

Create ClusterService to hold cluster node info

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 11.1, 2021.0
    • Component/s: Clustering
    • Tags:
    • Impact type:
      Configuration Change
    • Upgrade notes:
      Hide

      When configuring Nuxeo in cluster mode, the configuration is now done with:

      nuxeo.cluster.enabled=true
      nuxeo.cluster.nodeid=...
      

      You should specify a nuxeo.cluster.nodeid even if you don't activate clustering, as it may help debugging (in particular Stream-based Pub/Sub).

      Internally this is expanded into XML through a default template that does:

         <extension target="org.nuxeo.runtime.cluster.ClusterService" point="configuration">
           <clusterNode id="${nuxeo.cluster.nodeid}" enabled="${nuxeo.cluster.enabled}" />
         </extension>
      

      The previous Framework properties (repository.clustering.enabled=true, repository.clustering.id=...) are still available for backward compatibility.

      In the <repository> extension point, the <clustering> id= and enabled= attributes don't exist anymore.

      Note that repository.clustering.delay still exists but is only meaningful for VCS when used with the legacy and deprecated JDBCClusterInvalidator (which is not the default anymore since Nuxeo 9.1 (NXP-21801)). It is later removed by NXP-28891.

      Show
      When configuring Nuxeo in cluster mode, the configuration is now done with: nuxeo.cluster.enabled= true nuxeo.cluster.nodeid=... You should specify a nuxeo.cluster.nodeid even if you don't activate clustering, as it may help debugging (in particular Stream-based Pub/Sub). Internally this is expanded into XML through a default template that does: <extension target= "org.nuxeo.runtime.cluster.ClusterService" point= "configuration" > <clusterNode id= "${nuxeo.cluster.nodeid}" enabled= "${nuxeo.cluster.enabled}" /> </extension> The previous Framework properties ( repository.clustering.enabled=true , repository.clustering.id=... ) are still available for backward compatibility. In the <repository>  extension point, the <clustering> id=  and enabled=  attributes don't exist anymore. Note that repository.clustering.delay still exists but is only meaningful for VCS when used with the legacy and deprecated JDBCClusterInvalidator (which is not the default anymore since Nuxeo 9.1 ( NXP-21801 )). It is later removed by  NXP-28891 .
    • Sprint:
      nxFG 10.3.3, nxFG 10.3.4, nxFG 10.3.5, nxFG 10.3.6, nxFG 10.3.7, nxFG 10.10.4
    • Story Points:
      3

      Description

      We need a small service to hold info about whether clustering is enabled and the cluster node id.

      This will replace ad-hoc uses of the framework properties repository.clustering.enabled and repository.clustering.id and multiple different random generations of ids when there is no node id specified.

      Current direct users of the properties are:

      • MigrationServiceImpl
      • StreamPubSubProvider
      • CacheServiceImpl

      In addition, the property is used in templates to fill in the repository's descriptor cluster node id — this should use the new service as well.

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - 0 minutes
                  0m
                  Remaining:
                  Remaining Estimate - 0 minutes
                  0m
                  Logged:
                  Time Spent - 1 day
                  1d