You can call the AllocateReadWriteSplittingConnection operation to apply for a read/write splitting endpoint for an ApsaraDB RDS instance.

If read-only instances are attached to a primary ApsaraDB RDS for SQL Server instance, you can call this operation to apply for a unified read-only routing endpoint for the primary instance. After you apply for a read-only routing endpoint for a primary instance, the existing endpoints of the primary instance and its read-only instances remain valid. In addition, you can still apply for internal and public endpoints.

Before you call this operation, make sure that the following requirements are met:

  • If the instance runs MySQL, the instance uses a shared proxy.
  • The instance is in the Running state.
  • Read-only instances are attached to the primary instance.
  • The instance does not have an ongoing Data Transmission Service (DTS) migration task.
  • The instance runs one of the following database versions and RDS editions:
    • SQL Server (cluster edition)
    • MySQL 5.7 on RDS High-availability Edition with local SSDs
    • MySQL 5.6

Debugging

OpenAPI Explorer automatically calculates the signature value. For your convenience, we recommend that you call this operation in OpenAPI Explorer. OpenAPI Explorer dynamically generates the sample code for different SDKs.

Request parameters

Parameter Type Required Example Description
Action String Yes AllocateReadWriteSplittingConnection

The operation that you want to perform. Set the value to AllocateReadWriteSplittingConnection.

DBInstanceId String Yes rm-uf6wjk5xxxxxxx

The ID of the primary instance. You can call the DescribeDBInstances operation to query the ID of the instance.

ConnectionStringPrefix String No rr-m5exxxxx-rw.mysql.rds.aliyuncs.com

The prefix of the read-only routing endpoint. The prefix must be unique. It can be up to 30 characters in length and can contain lowercase letters and hyphens (-). It must start with a lowercase letter.

Note The default prefix consists of the name of the primary instance followed by the letters rw.
Port String No 1433

The port that is associated with the read-only routing endpoint. Valid values: 1000 to 5999. Default value: 1433.

MaxDelayTime String No 30

The threshold of the latency that is allowed on the read-only instances. Valid values: 0 to 7200. Default value: 30. Unit: seconds.

Note If the latency on a read-only instance exceeds the specified threshold, ApsaraDB RDS does not forward read requests to the read-only instance.
NetType String No Intranet

The network type of the read-only routing endpoint. Valid values:

  • Internet: Internet
  • Intranet: internal network
Note The default value is Intranet. Make sure that the network type of the read-only routing endpoint is the same as that of the primary instance.
DistributionType String No Standard

The method that is used to assign read weights. Valid values:

  • Standard: ApsaraDB RDS automatically assigns read weights to the primary and read-only instances based on the specifications of these instances.
  • Custom: You must manually assign a read weight to each instance.
Weight String No {"rm-bp1**********":800,"master":400,"slave":400}

The read weights of the primary instance and its read-only instances. The read weight is increased in increments of 100. The maximum value is 10000.

  • For ApsaraDB RDS instances, the value of this parameter is in the following format: {"<ID of the read-only instance >":<Weight>,"master":<Weight>,"slave":<Weight>}.
  • For ApsaraDB MyBase instances, the value of this parameter is in the following format: [{"instanceName":"<ID of the primary instance>","weight":<Weight>,"role":"master"},{"instanceName":"<ID of the primary instance>","weight":<Weight>,"role":"slave"},{"instanceName":"<ID of the read-only instance>","weight":<Weight>,"role":"master"}]
Note
  • If you set the DistributionType parameter to Custom, you must also specify this parameter.
  • If you set the DistributionType parameter to Standard, this parameter is invalid.

Response parameters

Parameter Type Example Description
RequestId String 4C467B38-3910-447D-87BC-AC049166F216

The ID of the request.

Examples

Sample requests

http(s)://rds.aliyuncs.com/?Action=AllocateReadWriteSplittingConnection
&DBInstanceId=rm-uf6wjk5xxxxxxx
&ConnectionStringPrefix=rr-m5exxxxx-rw.mysql.rds.aliyuncs.com
&Port=1433
&MaxDelayTime=30
&NetType=Intranet
&DistributionType=Standard
&Weight={"rm-bp1**********":800,"master":400,"slave":400}
&Common request parameters

Sample success responses

XML format

HTTP/1.1 200 OK
Content-Type:application/xml

<AllocateReadWriteSplittingConnectionResponse>
    <RequestId>4C467B38-3910-447D-87BC-AC049166F216</RequestId>
</AllocateReadWriteSplittingConnectionResponse>

JSON format

HTTP/1.1 200 OK
Content-Type:application/json

{
  "RequestId" : "4C467B38-3910-447D-87BC-AC049166F216"
}

Error codes

For a list of error codes, visit the Error Center.