Control Center with External Cluster
Running GridGain Control Center against an external GridGain 8 cluster to separate Control Center data from its backend process.
Using an external GridGain 8 cluster separates Control Center data from its backend process, improving scalability and resilience. The backend becomes stateless, while the external cluster ensures data durability.
Prepare the External Cluster
If you are connecting Control Center to an external GridGain 8 Enterprise Edition or GridGain 8 Ultimate Edition cluster, you must set
ignite.includeGridGainPlugin=truein theapplication.propertiesfile.If you are using GridGain 8 Community Edition as the external cluster, no additional changes in the
application.propertiesfile are required.
Ensure that the GridGain 8 version matches the Control Center client version. Control Center internal GridGain node version can be found in the release notes.
If the GridGain 8 cluster version differs from the version expected by Control Center, enable rolling upgrades mode to support mixed-version nodes.
The external cluster requires a specific data region configuration. Use the following configuration as an example:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="failureDetectionTimeout" value="10000"/>
<property name="clientFailureDetectionTimeout" value="10000"/>
<property name="networkTimeout" value="10000"/>
<!-- <property name="workDirectory" value="/path/to/work"/> -->
<!--
<property name="gridLogger">
<bean class="org.apache.ignite.logger.log4j2.Log4J2Logger">
<constructor-arg type="java.lang.String" value="/path/to/logger/ignite-log4j2.xml"/>
</bean>
</property>
-->
<property name="communicationSpi">
<bean class="org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi">
<property name="socketWriteTimeout" value="10000"/>
<property name="messageQueueLimit" value="1024"/>
</bean>
</property>
<property name="discoverySpi">
<bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
<property name="ipFinder">
<!-- Configure discovery to Control Center node here. -->
<!--
<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
<property name="addresses">
<list>
<value>127.0.0.1:47500..47510</value>
</list>
</property>
</bean>
-->
</property>
</bean>
</property>
<property name="transactionConfiguration">
<bean class="org.apache.ignite.configuration.TransactionConfiguration">
<property name="txTimeoutOnPartitionMapExchange" value="#{60L * 1000L}"/>
<property name="DefaultTxTimeout" value="20000"/>
</bean>
</property>
<property name="dataStorageConfiguration">
<bean class="org.apache.ignite.configuration.DataStorageConfiguration">
<property name="metricsEnabled" value="true"/>
<property name="walSegmentSize" value="#{128L * 1024 * 1024}"/>
<property name="writeThrottlingEnabled" value="true"/>
<property name="walMode" value="LOG_ONLY"/>
<property name="defaultDataRegionConfiguration">
<bean class="org.apache.ignite.configuration.DataRegionConfiguration">
<property name="initialSize" value="#{1024L * 1024L * 1024L}"/>
<property name="maxSize" value="#{1600L * 1024L * 1024L}"/>
<property name="metricsEnabled" value="true"/>
<property name="persistenceEnabled" value="true"/>
</bean>
</property>
<property name="dataRegionConfigurations">
<list>
<bean class="org.apache.ignite.configuration.DataRegionConfiguration">
<property name="name" value="in-memory"/>
<property name="initialSize" value="#{10L * 1024 * 1024}"/>
<property name="maxSize" value="#{1024L * 1024L * 1024L}"/>
<property name="metricsEnabled" value="true"/>
</bean>
</list>
</property>
</bean>
</property>
</bean>
</beans>After setup, ensure that the cluster is activated.
Configure Control Center
The default ignite-config.xml in the Control Center root directory should be replaced with the client configuration. Refer to the following as an example:
Run Control Center With External Cluster
Start the external GridGain cluster, then start Control Center.
The client node connects to the external cluster, storing all Control Center data there.
Now, all Control Center data, including users, attached clusters, dashboards, alerts, metrics, and query history, is reliably stored in the external GridGain cluster. If Control Center loses its local persistent data, it will reconnect to the external storage after recovery and continue operating without data loss.
Last updated
Was this helpful?

