Updated on 2024-04-03 GMT+08:00

Enabling Read/Write Splitting

Read/write splitting enables read and write requests to be automatically routed through a read/write splitting address. This section describes how to enable read/write splitting.

Constraints

  • Only pay-per-use proxy instances can be created for pay-per-use DB instances.
  • Both pay-per-use and yearly/monthly proxy instances can be created for yearly/monthly DB instances. To create yearly/monthly proxy instances, you must contact customer service.

Supported Regions

The single-proxy function is available in the CN-Hong Kong, AP-Bangkok, and AP-Singapore regions. If your instance is deployed in any other region, contact customer service to apply for the required permissions.

To enable the multi-proxy function, contact customer service to apply for the required permissions.

Enabling the Single-Proxy Function

  1. Log in to the management console.
  2. Click in the upper left corner and select a region and a project.
  3. Click in the upper left corner of the page and choose Databases > Relational Database Service.
  4. On the Instances page, click the target DB instance. The Basic Information page is displayed.
  5. In the navigation pane on the left, choose Database Proxy.

    Alternatively, in the Connection Information area on the Basic Information page, click Apply next to the Read/Write Splitting Address field.

    Figure 1 Applying for a read/write splitting address

  6. On the displayed page, click Create Database Proxy.
  7. Configure parameters and click Next.

    Figure 2 Selecting the weighted routing policy
    Table 1 Parameter description

    Parameter

    Description

    Billing Mode

    • Only Pay-per-use can be selected for pay-per-use DB instances.
    • Either Pay-per-use or Yearly/monthly can be selected for yearly/monthly DB instances. A pay-per-use proxy can be changed to a yearly/monthly proxy later. To create a yearly/monthly proxy, contact customer service to apply for required permissions.

    Routing Policy

    • Weighted: You can change the weights of your DB instance and read replicas after read/write splitting is enabled.
    • Load balancing: This policy is only available if proxy load balancing is enabled. After Load balancing is selected, read requests are automatically distributed to multiple read replicas based on the number of active connections to balance the load among these read replicas.

    You can change the routing policy after the database proxy is created. For details, see Configuring the Delay Threshold and Routing Policy.

    Read Requests Accepted by Primary DB Instance

    This parameter is only available if Load balancing is selected.

    • Yes: Read requests can be routed to both the primary instance and read replicas.
    • No: Read requests are routed only to read replicas to offload read pressure from the primary instance.

    New Instance Class

    Select specifications for the proxy instance based on service demands. You can change the specifications after the proxy instance is created. For details, see Changing the Instance Class of a DB Proxy Instance.

    For details about performance metrics, see Table 2.

    Proxy Nodes

    Enter an integer from 2 to 8. You can change the nodes after the proxy instance is created. For details, see Changing the Number of Proxy Nodes.

    You are advised to set proxy nodes to the quantity of read replicas, with one proxy node for one read replica.

    • Read/write splitting maintains database connectivity but splits read and write requests. If read/write splitting is enabled, an additional address called a read/write splitting address is provided. To use read/write splitting, switch your applications to this address.
    • Read/write splitting address: You can connect to databases through the read/write splitting address, with read and write requests distributed to different databases automatically.

      The read/write splitting address and the floating IP address of the DB instance are in the same VPC and subnet and are independent from each other.

    • Delay threshold: You can set the delay threshold after read/write splitting is enabled. For details, see Configuring Delay Threshold.
    • DB instances for load balancing: You can select DB instances for load balancing after read/write splitting is enabled.

  8. Confirm the database proxy configuration.

    • To modify the configuration, click Previous.
    • If there is no need to change the settings, click Submit.

  9. View and manage the proxy on the Database Proxy page.

    You can view the read/write splitting address on the Basic Information page. Read and write requests can be split through the read/write splitting address.

    The read/write splitting address and the floating IP address of the DB instance are in the same VPC and subnet and are independent from each other.

    Figure 3 Viewing the read/write splitting address

Enabling the Multi-Proxy Function

  1. Log in to the management console.
  2. Click in the upper left corner and select a region and a project.
  3. Click in the upper left corner of the page and choose Databases > Relational Database Service.
  4. On the Instances page, click the target DB instance.
  5. In the navigation pane on the left, choose Database Proxy.

    Alternatively, in the Connection Information area on the Basic Information page, click Apply next to the Read/Write Splitting Address field.

    Figure 4 Applying for a read/write splitting address

  6. On the displayed page, click Create Database Proxy.

    Figure 5 Creating database proxy

  7. On the displayed page, set the required parameters and click Next.

    Figure 6 Setting Routing Policy to Weighted
    Figure 7 Setting Routing Policy to Load balancing
    Table 2 Parameter description

    Parameter

    Description

    Billing Mode

    • Only Pay-per-use can be selected for pay-per-use DB instances.
    • Either Pay-per-use or Yearly/monthly can be selected for yearly/monthly DB instances. A pay-per-use proxy can be changed to a yearly/monthly proxy later. To create a yearly/monthly proxy, contact customer service to apply for required permissions.

    Proxy Name

    The proxy name must start with a letter and consist of 4 to 64 characters. Only letters (case-sensitive), digits, hyphens (-), and underscores (_) are allowed.

    Role

    • Read and write: Read and write requests are split.
    • Read only: The proxy is not connected to your primary instance and cannot receive write requests.

    Routing Policy

    • Weighted: You can change the weights of your DB instance and read replicas after read/write splitting is enabled.
    • Load balancing: If selected, to balance the load among read replicas, read requests are automatically distributed to multiple read replicas based on the number of active connections.

    You can change the routing policy after the database proxy is created. For details, see Configuring the Delay Threshold and Routing Policy.

    Read Requests Accepted by Primary DB Instance

    This parameter is available only when Load balancing is selected.

    • Yes: Read requests can be routed to both the primary instance and read replicas, which increases the load of the primary instance. Configure this parameter as required.
    • No: Read requests are routed only to read replicas to offload read pressure from the primary instance.

    New Instance Class

    Select specifications for the proxy instance based on service requirements. You can change the specifications after the proxy instance is created. For details, see Changing the Instance Class of a DB Proxy Instance.

    For details about performance metrics, see Table 2.

    Proxy Nodes

    Enter an integer from 2 to 8. You can change the nodes after the proxy instance is created. For details, see Changing the Number of Proxy Nodes.

    You are advised to set proxy nodes to the quantity of read replicas, with one proxy node for one read replica.

    Set Read Weight

    This parameter is only available if Weighted is selected. Select the primary instance and read replicas to which you want to assign weights.

    Rules for configuring read weights

    • Read requests are proportionately allocated to the primary instance and read replicas based on the read weights you configure. For example, if you have selected two read replicas and set their read weights to 100 and 200, all read requests forwarded to the proxy are automatically routed to the read replicas in the ratio of 1:2 (the read weights for the unselected primary instance and other read replicas is 0), and write requests are sent only to your primary instance.
    • A read replica can be associated with more than one proxy. To balance traffic among the read replicas of your primary instance, set read weights for them based on the existing proxies' weights and on the amount of traffic routed to the read replicas.
    • You can change read weights of the primary instance and read replicas after read/write splitting is enabled. For details, see Configuring the Delay Threshold and Routing Policy.

    Select DB Instances for Load Balancing

    This parameter is available only when Load balancing is selected. Select the DB instances for load balancing.

    After Load balancing is selected, the proxy forwards read requests to database nodes with fewer active connections.

    You can change the DB instances for load balancing after read/write splitting is enabled. For details, see Configuring the Delay Threshold and Routing Policy.

  8. Confirm the database proxy configuration.

    • To modify the configuration, click Previous.
    • To submit the request, click Submit.

  9. View and manage the proxy on the Database Proxy page.

    You can view the read/write splitting address on the Basic Information page. Read and write requests can be split through the read/write splitting address.

    The read/write splitting address and the floating IP address of the DB instance are in the same VPC and subnet and are independent from each other.

    Figure 8 Viewing the read/write splitting address