7.12.3. Advanced Listeners

Note

This feature is available from v7.0.3.

The idea behind the Connector Advanced Listeners feature is to allow easy definition of one or more listening addresses and ports via a single JSON file. A binding port/address pair can be mapped to a given set of options that will provide a “way” to choose data sources to connect to, through existing connector configuration elements.

The configuration file is written in JSON format in a file located by default in tungsten-connector/conf/listeners.json.

Important

If present, this file will be loaded and will override the main configuration, therefore when defining configuration(s) through listeners, other configurations, for example, --connector-readonly-port will be ignored.

Important

To reload the configuration after changes to the JSON file, the command connector restart must be used, this will cause any existing connections through the connector to be terminated, so care must be taken if implementing this on an existing production system with active clients.

Below is example content defining two Connector ports, one for reads in a local cluster and one for writes in a remote site:

[
    {
        "description": "R/W port",
        "listenPort":"3306",
        "dataService": "global",
        "bridgeMode": true,
        "qos": "RW_STRICT"
    },
    {
        "description": "R/O port",
        "listenPort":"3307",
        "dataService": "global",
        "bridgeMode": true,
        "qos": "RO_RELAXED",
        "affinity": "west"
    },
    {
        "description": "SmartScale port",
        "listenPort":"3308",
        "dataService": "global",
        "smartScale": true,
        "sessionId": "CONNECTION"
    }
]

Field Descriptions

  • listenAddress (string) : Can be used to restrict connections to a single address. For example, to listen only to local network connections, the local address “192.168.1.10” (or whichever appropriate) will be specified. Default is “0.0.0.0”, which is all configured network addresses.

  • listenPort (integer) : The Connector port on which to listen for incoming connections. Default is port 3306.

  • serverTargetPort (integer) : The MySQL server port to connect to, typically 13306 or any port configured in the target MySQL server. This setting overrides the port from the current cluster definition and should be used with care.

  • bridgeMode (boolean) : If set to true, the connection to the data source will be made in Bridge mode using the specified QoS to select primary or replica. When false or unspecified, connection will be in Proxy mode

  • QoS (predefined string) : Quality of Service, either RW_STRICT for read/write connections (routes to a primary node), or RO_RELAXED for read-only connections (routes to a replica). Defaults to RW_STRICT

  • smartScale (boolean) : Enables the smart scale feature to read from up-to-date replicas (See Section 7.4.10, “Smartscale Routing” for more information). Setting sessionID will control the desired level of consistency. Defaults to false

  • sessionId (String) : Relevant only when smartScale is ON, specifies the session ID to use (See Section 7.4.10, “Smartscale Routing” for more information). Values can be CONNECTION, USER, DATABASE, or a free string. Defaults to DATABASE

  • dataService (String) : Sets the data service to connect to. Typically, in multi-site environments, the global, composite data service will be given. For specific needs, a local data service name can be specified so that connections will never cross the site. Affinity (see below) can also be specified to prefer one site or one host over the other

  • affinity (String) : Data service or data source name to select preferably.

  • maxAppliedLatency (Integer) : Maximum replica latency in seconds when selecting a node for reading.