Spec-Zone.ru › MySQL Shell 9.2

7.8.5 Визуализация правил маршрутизации

  • Правило маршрутизации, связанное с кластером

  • Показать подробную информацию

  • Визуализировать как JSON

  • Назначения

  • Маршруты

Правило маршрутизации, связанное с кластером

Для получения всех правил маршрутизации, связанных с кластером, используйте следующее:

  • cluster.routing_guidelines()

Например, кластер имеет два правила маршрутизации, default и rg1:

+-----------+--------+--------+-------------------------------+
| guideline | active | routes | destinations                  |
+-----------+--------+--------+-------------------------------+
| default   |      0 | rw,ro  | Primary,Secondary,ReadReplica |
| rg1       |      0 | rw,ro  | Primary,Secondary,ReadReplica |
+-----------+--------+--------+-------------------------------+
        

Для получения конкретного правила маршрутизации, связанного с кластером, используйте следующее:

  • cluster.get_routing_guideline("name")

Если имя не указано, извлекается активное правило маршрутизации.

Показать подробную информацию

Для просмотра подробного резюме правила маршрутизации используйте следующее:

rg.show()

rg.show() возвращает следующее:

  • Имя правила маршрутизации и связанную топологию.

  • Маршруты, включая выражение соответствия и разрешенные назначения топологии. Если опция "router", "routeIdentifier" определена, используется тот маршрутизатор для оценки правила.

    Если ни одно назначение не соответствует, возвращается None.

  • Все классы назначений, определенные правилом маршрутизации, включая выражение соответствия и члены топологии, которые соответствуют выражению.

  • Unreferenced servers перечисляет члены топологии, не упоминаемые в маршруте или классе назначения.

Например:

Py > rg.show()
Routing Guideline: 'default'
Cluster: 'mycluster'

Routes
------
  - rw
    + Match: "$.session.targetPort = $.router.port.rw"
    + Destinations:
      * 127.0.0.1:4000 (Primary)

  - ro
    + Match: "$.session.targetPort = $.router.port.ro"
    + Destinations:
      * 127.0.0.1:4001, 127.0.0.1:4002 (Secondary)
      * 127.0.0.1:4000 (Primary)

Destination Classes
-------------------
  - Primary:
    + Match: "$.server.memberRole = PRIMARY"
    + Instances:
      * 127.0.0.1:4000

  - Secondary:
    + Match: "$.server.memberRole = SECONDARY"
    + Instances:
      * 127.0.0.1:4001
      * 127.0.0.1:4002

  - ReadReplica:
    + Match: "$.server.memberRole = READ_REPLICA"
    + Instances:
      * None

Unreferenced servers
--------------------
  - None
        

Визуализировать как JSON

Для просмотра правила маршрутизации в виде JSON-документа используйте следующее:

rg.as_json()

Например:

 Py > rg.as_json()
{
    "destinations": [
        {
            "match": "$.server.memberRole = PRIMARY",
            "name": "Primary"
        },
        {
            "match": "$.server.memberRole = SECONDARY",
            "name": "Secondary"
        },
        {
            "match": "$.server.memberRole = READ_REPLICA",
            "name": "ReadReplica"
        }
    ],
    "name": "default",
    "routes": [
        {
            "connectionSharingAllowed": true,
            "destinations": [
                {
                    "classes": [
                        "Primary"
                    ],
                    "priority": 0,
                    "strategy": "round-robin"
                }
            ],
            "enabled": true,
            "match": "$.session.targetPort = $.router.port.rw",
            "name": "rw"
        },
        {
            "connectionSharingAllowed": true,
            "destinations": [
                {
                    "classes": [
                        "Secondary"
                    ],
                    "priority": 0,
                    "strategy": "round-robin"
                },
                {
                    "classes": [
                        "Primary"
                    ],
                    "priority": 1,
                    "strategy": "round-robin"
                }
            ],
            "enabled": true,
            "match": "$.session.targetPort = $.router.port.ro",
            "name": "ro"
        }
    ],
    "version": "1.0"
}
        

Назначения

Для просмотра назначений, определенных в правиле маршрутизации, используйте следующее:

rg.destinations()

Например:

 Py > rg.destinations()
+-------------+------------------------------------+
| destination | match                              |
+-------------+------------------------------------+
| Primary     | $.server.memberRole = PRIMARY      |
| Secondary   | $.server.memberRole = SECONDARY    |
| ReadReplica | $.server.memberRole = READ_REPLICA |
+-------------+------------------------------------+
        

Маршруты

Для просмотра назначений, определенных в правиле маршрутизации, используйте следующее:

rg.routes()

Например:

rg.routes()
+------+---------+-----------+-----------------------------------------+----------------------------------------------+-------+
| name | enabled | shareable | match                                   | destinations                                 | order |
+------+---------+-----------+-----------------------------------------+----------------------------------------------+-------+
| rw   |       1 |         1 | $.session.targetPort = $.router.port.rw | round-robin(Primary)                         |     0 |
| ro   |       1 |         1 | $.session.targetPort = $.router.port.ro | round-robin(Secondary), round-robin(Primary) |     1 |
+------+---------+-----------+-----------------------------------------+----------------------------------------------+-------+
        

Возвращаемая таблица содержит следующие столбцы:

  • name: имя маршрута.

  • enabled: (булево) включён ли маршрут.

  • shareable: (булево) можно ли использовать соединение совместно.

  • match: правило соответствия для клиентского соединения.

  • destinations: список назначений через запятую, отсортированный по приоритету.

  • order: позиция маршрута в правиле маршрутизации.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-shell-9.2-en/admin-api-routing-guidelines-visualising.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API