This topic explains how to use API to listen to configurations in ACM.
Description
Capture configuration changes in real time by listening to configurations on ACM. In case of any configuration changes, you can use the Get configurations to obtain the latest value of the configuration and dynamically refresh the local cache.
Registered listening adopts asynchronous Servlet technique. Registered listening is essentially to compare the MD5 with configurations and configuration values to that in the backend. If the MD5 values don’t match, then it immediately returns the different configuration. If they match, it holds for 30 seconds. And it returns an empty string.
Request type
POST
Request URL
/diamond-server/config.co
Request parameters
Parameter | Type | Required | Description |
---|---|---|---|
Probe-Modify-Request | String | Yes | Listen to data messages. The format is dataId^2group^2contentMD5^2tenant^1 .
|
Header parameters
Parameter | Type | Required | Description |
---|---|---|---|
longPullingTimeout | String | Yes | If the long pulling timeout is 30 seconds, then enter 30000 here. |
Spas-AccessKey | String | Yes | The accessKey can be found in the ACM console. |
timeStamp | String | Yes | The request time in milliseconds |
Spas-Signature | String | Yes | SpasSigner.sign(Tenant+ group+ timeStamp, secretKey) . Sign "tenant + group + timestamp" with secret key. The signature algorithm is HmacSHA1.
The timestamp signature prevents replay attacks. The signature is valid for 60 seconds.
|
Parameter description
- A delimiter to separate fields within a configuration:
^2 = Character.toString((char) 2)
- A delimiter to separate configurations:
^1 = Character.toString((char) 1)
- contentMD5: MD5(content). This is an empty string because the first local cache is empty.
Response parameters
Parameter type | Description |
---|---|
String | Configuration value |
Error code
Error code | Error message | Explanation |
---|---|---|
400 | Bad Request | Syntax error in client request |
403 | Forbidden | No permission |
404 | Not Found | Client error, not found |
500 | Internal Server Error | Internal errors of the server |
200 | OK | Normal |
Examples
-
Request example
http://serverIp:8080/diamond-server/config.co POST request body data: Probe-Modify-Request=dataId^2group^2contentMD5^2tenant^1
-
Response example
In case of any configuration changes dataId^2group^2tenant^1 If no configuration changes: an empty string is returned