Aspire as a content processing framework is capable of coordinating work with other Aspire servers in order to balance the resource utilization and provide high availability.
This section describes how does Aspire work in a distributed environment and how to configure it.
When configured to work in a cluster, Aspire interacts with two different external systems simultaneously:
All servers are equal in an Aspire cluster, this means there is no "master" server.
By default the Aspire distributions are configured to work in standalone mode:
Code Block | ||
---|---|---|
| ||
<configAdministration> <zookeeper enabled="false" root="/aspire"> <!-- <externalServer>127.0.0.1:2182,127.0.0.1:2183,127.0.0.1:2181</externalServer> --> </configAdministration> |
So our first step would be to enable zookeeper and point to our zookeeper cluster. (Let's assume we have a three server zookeeper cluster zooA.dev.com, zooB.dev.com and zooC.dev.com)
Code Block | ||
---|---|---|
| ||
<configAdministration> <zookeeper enabled="true" root="/aspire"> <externalServer>zooA.dev.com:2182,zooB.dev.com:2183,zooC.dev.com:2181</externalServer> </configAdministration> |
If we were to start our Aspire servers now, they would not interact with each other as a cluster, this is because they do not share the same cluster ID. So let's define our clusterID to be "dev", by uncommenting the <clusterID> field:
Code Block | ||
---|---|---|
| ||
<!-- By default all Aspire servers start in their own cluster. To make servers work together, set a common cluster id across multiple instances that are connected to a common zooKeeper instance and database provider (for example "dev" or "prod") --> <clusterId>dev</clusterId> |
From that server execute
Code Block | ||
---|---|---|
| ||
$ pushLicense.sh
2019-06-03T18:10:35Z INFO [BOOTLOADER]: Connection state is CONNECTED
2019-06-03T18:10:36Z INFO [BOOTLOADER]: License copied to /aspire/dev/license/AspireLicense.lic |
Info |
---|
Now any new Aspire server connecting to this ZooKeeper cluster with the same cluster ID will use the same license, so you don't need to copy it into the server. |
From now on, any configuration done on one server will be synchronized into the others.