Active-Passive (Primary / Secondary) Setup
To configure the Connector in Active-Passive mode, set the value of attribute “GRC_CONSUMER_PRIORITY” in Connector configuration. For the Primary Connector, set the value of this attribute to “127” without quotes. For the Secondary Connector, set the value of this attribute to “100” without quotes.
Active-Passive mode has the following configurations.
Configurations for Site-1
Primary-AMQ: broker-1, Secondary-AMQ: broker-2
...
Property | Value |
ActiveMq_Timeout | 10000 |
GRC_CONSUMER_PRIORITY | 127 |
RANDOMIZE | false |
PRIORITY_BACKUP | true |
ActiveMq_URL_1 | primary-url-of-amq:port |
ActiveMq_URL_2 | secondary-url-of-amq:port |
Configurations for Site-2
Primary-AMQ: broker-1, Secondary-AMQ: broker-2, For detailed description of the GC please consult properties.
...
Property | Value |
ActiveMq_Timeout | 10000 |
GRC_CONSUMER_PRIORITY | 100 |
RANDOMIZE | false |
PRIORITY_BACKUP | true |
ActiveMq_URL_1 | primary-url-of-amq:port |
ActiveMq_URL_2 | secondary-url-of-amq:port |
Failover Scenarios
Following table shows different failover scenarios and its impact on the Connector Clients.
...
Failover is handled in a way if any component goes down, passive components take over in a seamless way.
Active-Active Setup
For an Active-Active deployment, Failover URL is set to use the local AMQ as primary and remote AMQ as secondary.
...
We have achieved it using ActiveMQ configurable properties specifically Consumer priority, Priority Backup, and building a Connector Sync mechanism in Generic Connector.
Failover Scenarios
No. | Scenario | Behavior |
1 | AMQ-1 is down while GC-1 is active | AMQ-2 will take over and all client requests will be processed by the same GC-1 instance because of its higher consumer priority. |
2 | Both AMQ-1 and GC-1 is down | AMQ-2 and GC-2 will start receiving requests. GC-2 will acquire all agent’s XMPP subscription and will start processing requests. |
3 | GC-1 restores | Connector-2 will continue to process requests until connectivity between Client application and Connector-2 is lost or Connector-2 is down. |
4 | Link between Connector-1 and Connector-2 is down | Both connector instances serve requests independently. |
5 | AMQ-1 restores while GC-1 is still down and AMQ-2 is also down | Client will send request to AMQ-1. AMQ-1 will send the request to GC-2 because GC-1 is down. Request Flow: Client-App-1 → AMQ-1 → GC-2 Response Flow: CGC-2 → AMQ-1 → Client-App-1 |
6 | GC-1 is down while both AMQ are active | The request flow will be the same as no. 5 |
7 | GC-2 is down while both AMQ are active | AMQ-2 requests will be redirected to AMQ-1 and GC-1 will handle all requests. Request Flow: Client-App-2 → AMQ-2 → AMQ-1 → GC-1 Response Flow: GC-1 → AMQ-1 → AMQ-2 → Client-App-2 |
...