Running Control Center with an External GridGain 8 Cluster
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:
<?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">
<!-- Template of client node to use for tests. -->
<bean id="clientNode" class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="igniteInstanceName" value="cc_client"/>
<property name="clientMode" value="true"/>
<property name="metricsLogFrequency" value="0"/>
<property name="failureDetectionTimeout" value="3000"/>
<property name="networkTimeout" value="5000"/>
<!-- Disable all clients. -->
<property name="connectorConfiguration"><null/></property>
<property name="clientConnectorConfiguration"><null/></property>
<!-- Logging configuration. -->
<property name="gridLogger">
<bean class="org.apache.ignite.logger.slf4j.Slf4jLogger"/>
</property>
<property name="discoverySpi">
<bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
<property name="ipFinder">
<!-- Configure discovery to an external GridGain cluster 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>
</bean>
</beans>
Run Control Center With Extertnal 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.
© 2025 GridGain Systems, Inc. All Rights Reserved. Privacy Policy | Legal Notices. GridGain® is a registered trademark of GridGain Systems, Inc.
Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are either registered trademarks or trademarks of The Apache Software Foundation.