1
votes

I am trying to set up an active-active deployment of all in one node for WSO2 APIM 3.0.0 as per the steps mentioned here. https://apim.docs.wso2.com/en/latest/SetupAndInstall/DeployingWSO2APIManager/SingleNode/configuring-an-active-active-deployment/

Step 5 is interesting. Why do we need this? Isn't all configuration and settings stored in the different DB's configured for the product? What would happen if we skip this step? Is there any way that we can avoid this setting and also can I have more than 2 active nodes in this kind of deployment. I am looking at having probably 3-4 all in one node stood up on separate VM's and have them all fronted by a load-balanced URL that our consumers can use.

We apply patches on our VM's every month(restart the VM after it) and downtime is not an option for us. So, we need at least 2 nodes of the all in one APIM node setup so that if one is down other can handle traffic during patching. Each node gives a max of 500TPS and sometimes we have more than 1500TPS. So, need 3-4 nodes of the same thing set up in a stateless fashion. I was hoping the shared db's will ensure that all settings are replicated everywhere immediately. The swagger jsons and wsdl's we import aren't they saved in a common db or are they saved in files in the installation directory.

1

1 Answers

0
votes

All configurations are saved in the database. But the deployable runtime artifacts which serve API traffic is stored in the file system. So, when you create an API (or Throttling policy), that's created in the file system of one node only. Then those artifacts need to be copied to other nodes. You can either use NFS, rSync or you can copy using a script.

Having more than 2 is technically possible. However, the ideal deployment would be to separate out gateways (and key managers) and scale them independently.