API7 Docs
Traffic ManagementTraffic Split

Traffic Split Configuration

Parameters

See plugin common configurations for configuration options available to all plugins.

  • rulesarray[object] · optional

    An array of one or more pairs of matching conditions and actions to be executed.

    • matcharray[object] · optional

      Rules to match for conditional traffic split.

      • varsarray[array] · optional

        An array of one or more matching conditions in the form of APISIX expressions to conditionally execute the plugin.

    • weighted_upstreamsarray[object] · optional

      List of upstream configurations.

      • upstream_idstring or integer · optional

        ID of the configured upstream object.

      • weightinteger · optional · default: 1

        Weight for each upstream.

      • upstreamobject · optional

        Configuration of the upstream.

        Certain configuration options of upstream are not supported here. These fields are service_name, discovery_type, checks, retries, retry_timeout, desc, and labels. As a workaround, you can create an upstream object and configure it in upstream_id.

        • typestring · optional · default: roundrobin

          Valid values: roundrobin, chash, ewma, or least_conn

          Algorithm for traffic splitting. Use roundrobin for weighted round robin, chash for consistent hashing, ewma for exponential weighted moving average, and least_conn for least connections.

        • hash_onstring · optional · default: vars

          Valid values: vars, header, cookie, consumer, or vars_combinations

          Used when type is chash. Support hashing on built-in variables, header, cookie, consumer, or a combination of built-in variables.

        • keystring · optional

          Used when type is chash. When hash_on is set to header or cookie, key is required. When hash_on is set to consumer, key is not required as the consumer name will be used as the key automatically.

        • nodesobject · optional

          Addresses of the upstream nodes.

        • timeoutobject · optional

          Timeout in seconds for connecting, sending and receiving messages.

        • pass_hoststring · optional · default: pass

          Valid values: pass, node, or rewrite

          Mode deciding how the host name is passed. pass passes the client's host name to the upstream. node passes the host configured in the node of the upstream. rewrite passes the value configured in upstream_host.

        • upstream_hoststring · optional

          Used when pass_host is rewrite. Host name of the upstream.

        • namestring · optional

          Identifier for the upstream for specifying service name, usage scenarios, and so on.